получить набор результатов в кусках в SQL Server - PullRequest
1 голос
/ 07 февраля 2011

Допустим, у меня есть запрос, который возвращает 10000 строк.Можно ли настроить этот запрос в SQL Server, чтобы он возвращал результат в виде кусков по 1000 строк в каждом?Таким образом, мое приложение получает 1000 строк, обрабатывает их, и пока оно работает, SQL Server работает для отправки следующих 1000 строк и т. Д .?

Это SQL Server 2005.

1 Ответ

3 голосов
/ 07 февраля 2011

SQL Server предоставляет набор результатов, который доставляется в виде потока сетевых пакетов (при условии, что вы используете TCP / IP для подключения к серверу).

Так что, если вы хотите быть действительно хардкорным, вы можете реализовать проводной протокол для доступа к SQL Server через сеть, а затем работать с потоком TCP. Однако это будет серьезная работа, которая не рекомендуется.

Другой возможностью было бы сделать запрос не один раз, а использовать несколько запросов, каждый из которых получает определенное «окно» вашего набора результатов. Это называется «подкачкой на стороне сервера». См. эту статью для описания того, как это делается.

Другим методом будет использование потокового доступа на стороне клиента. Например, если вы используете ADO.NET в качестве клиента, вы можете использовать SqlDataReader, чтобы получать по одной строке за раз (в фоновом режиме данные по-прежнему доставляются кусками по сети, но это прозрачно для вас). Но это зависит от клиента, которого вы используете, который вы не указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...