Ответ Риквдбоша точен.
Вот некоторые дополнительные мысли, если предположить, что это приложение. Один из подходов - читать меньшие диапазоны PartitionKey параллельно. Например, предполагая, что обрабатываемый диапазон равен июнь / 2018 , мы бы получили:
- Thread-1 => PartitionKey ge '20180601' && PartitionKey lt '20180605'
- Thread-2 => PartitionKey ge '20180605' && PartitionKey lt '20180610'
- Thread-3 => PartitionKey ge '20180610' && PartitionKey lt '20180615'
- Thread-4 => PartitionKey ge '20180615' && PartitionKey lt '20180620'
- Thread-5 => PartitionKey ge '20180620' && PartitionKey lt '20180725'
- Thread-6 => PartitionKey ge '20180625' && PartitionKey lt '20180701'
Более того, можно быть еще более агрессивным и параллельно читать меньшие разделы (например, ежедневно) без использования конструкций TableQuery.
Обратите внимание, что ни один из подходов, описанных выше, не обрабатывает стратегию разделения, которая является крайне несбалансированной Например, предположим, что 95% данных за июнь / 2018 г. хранятся в диапазоне от «20180605» до «20180610» или в течение одного дня, может наблюдаться или не наблюдаться улучшение общего времени выполнения по сравнению с последовательным считыванием в этот случай, особенно из-за издержек параллелизма (например, потоков, выделения памяти, синхронизации и т. д.).
Теперь при условии, что это приложение .NET, работающее в ОС Windows, и описанный выше подход подходит для вашего сценария , рассмотрим:
- Увеличение максимального количества соединений;
- Отключение алгоритма Nagle;
Найдите ниже фрагмент кода для изменения в конфигурации приложения. Обратите внимание, что:
- Можно определить адрес (например, https://stackoverflow.com) для maxconnection вместо использования "*" .
Рекомендуется запускать тесты производительности, чтобы определить, какая конфигурация подходит для maxconnection, перед выпуском в эксплуатацию.
Более подробную информацию об управлении соединениями можно получить по https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/network/connectionmanagement-element-network-settings.