Зачем читать сразу 200 миллиардов строк?
Вы должны их пейджировать, читая, скажем, несколько тысяч строк одновременно.
Даже если вам действительно нужно прочитать все 200 миллиардовСтроки, которые вы все равно должны использовать для разбиения чтения на более короткие запросы, следует использовать для разбиения на страницы. Таким образом, если произойдет сбой, просто продолжайте чтение с того места, на котором остановились.
См. эффективный способ реализации подкачки дляпо крайней мере один метод реализации подкачки с использованием ROW_NUMBER
Если вы выполняете анализ данных, то я подозреваю, что вы используете не то хранилище (SQL Server на самом деле не предназначен для обработки больших наборов данных), иливам нужно изменить свои запросы, чтобы анализ выполнялся на сервере с использованием SQL.
Обновление: Я думаю, что последний абзац был несколько неверно истолкован.
Хранение в SQLСервер в первую очередь предназначен для онлайновой обработки транзакций (OLTP) - эффективного запроса больших массивов данных в среде с массовым параллелизмомNTS (например, чтение / обновление одной записи клиента в базе данных миллиардов, в то же время, что тысячи других пользователей делают то же самое для других записей).Обычно цель состоит в том, чтобы минимизировать количество прочитанных данных, уменьшить количество необходимых операций ввода-вывода и уменьшить количество конфликтов.
Анализ, о котором вы говорите, почти полная противоположность этому - single клиент активно пытается прочитать все записей для выполнения статистического анализа.
Да, SQL Server справится с этим, но вы должны иметь в виду, что он оптимизирован длясовершенно другой сценарий.Например, данные считываются с диска по странице (8 КБ) за раз, несмотря на то, что ваша статистическая обработка, вероятно, основана только на 2 или 3 столбцах.В зависимости от плотности строк и ширины столбца вы можете использовать только небольшую часть данных, хранящихся на странице размером 8 КБ - большинство данных, для которых SQL Server должен был считывать и выделять память, даже не использовалось.(Помните, что SQL Server также пришлось заблокировать эту страницу, чтобы другие пользователи не могли связываться с данными во время их чтения).
Если вы серьезно относитесь к обработке / анализу массивных наборов данных, то существуют форматы хранения, которыеоптимизированы именно для такого рода вещей - в SQL Server также имеется дополнительная служба, называемая Microsoft Analysis Services , которая добавляет дополнительные интерактивная аналитическая обработка (OLAP) и возможности интеллектуального анализа данных с использованием режимов хранения.больше подходит для такого рода обработки.