Получение миллиардов строк с удаленного сервера?

Я пытаюсь получить около 200 миллиардов строк с удаленного SQL Server. Чтобы оптимизировать это, я ограничил свой запрос использованием только индексированного столбца в качестве фильтра и выбираю только подмножество столбцов, чтобы запрос выглядел следующим образом:

SELECT ColA, ColB, ColC FROM <Database> WHERE RecordDate BETWEEN '' AND ''

Но похоже, если я не ограничу свой запрос временным окном В течение нескольких часов запрос не выполняется во всех случаях со следующей ошибкой:

OLE DB provider "SQLNCLI10" for linked server "<>" returned message "Query timeout expired".
Msg 7399, Level 16, State 1, Server M<, Line 1
The OLE DB provider "SQLNCLI10" for linked server "<>" reported an error. Execution terminated by the provider because a resource limit was reached.
Msg 7421, Level 16, State 2, Server <>, Line 1
Cannot fetch the rowset from OLE DB provider "SQLNCLI10" for linked server "<>". 

Тайм-аут, вероятно, является проблемой из-за времени, необходимого для выполнения плана запроса. Поскольку у меня нет контроля над сервером, мне было интересно, есть ли хороший способ получить эти данные помимо простого SELECT , который я использую. Могу ли я использовать какие-то особые приемы SQL Server? Возможно, скажите удаленному серверу разбивать данные на страницы вместо отправки нескольких запросов или чего-то еще? Есть предложения, как я могу это улучшить?

7
задан Charles 29 July 2011 в 03:10
поделиться