текстовое окно.
аюсь получить около 200 миллиардов строк с удаленного сервера SQL. Чтобы оптимизировать это, я ограничил свой запрос использованием только индексированного столбца в качестве фильтра и выбираю только подмножество столбцов, чтобы запрос выглядел так:
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, которые я могу использовать? Возможно, сказать удаленному серверу разбивать данные на страницы вместо того, чтобы выдавать несколько запросов или что-то еще? Любые предложения о том, как я мог бы улучшить это?