我正在尝试从远程 SQL Server 检索大约 2000 亿行。为了优化这一点,我将查询限制为仅使用索引列作为过滤器,并仅选择列的子集以使查询如下所示:
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 特定技巧吗?也许告诉远程服务器对数据进行分页而不是发出多个查询或其他什么?关于如何改进这个问题有什么建议吗?
这更像是一种工作SSIS适合.即使像 ReadFromOleDbSource->WriteToOleDbSource 这样的简单流程也可以处理此问题,为您创建必要的批处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)