Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 与本机查询相比,跨服务器查询的开销是多少?_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 与本机查询相比,跨服务器查询的开销是多少?

Sql 与本机查询相比,跨服务器查询的开销是多少?,sql,sql-server,tsql,Sql,Sql Server,Tsql,如果我连接到SQL server中的某个特定服务器,并且我使用引用另一个服务器中某个表的查询,这是否会降低查询速度?如果是,会降低多少(例如,如果我将大量数据连接到当前所在服务器中的表)?我这样问是因为我想知道,将该表导入到我所在的服务器是否比跨服务器查询更有效。我认为这取决于具体情况。是的,可能不是你想要的答案,但这取决于情况。使用链接服务器确实会带来成本,特别是取决于您尝试返回的行数和您尝试运行的查询类型。您应该能够查看查询的执行计划,并查看用于命中链接服务器表的量。再加上返回结果所需的时间

如果我连接到SQL server中的某个特定服务器,并且我使用引用另一个服务器中某个表的查询,这是否会降低查询速度?如果是,会降低多少(例如,如果我将大量数据连接到当前所在服务器中的表)?我这样问是因为我想知道,将该表导入到我所在的服务器是否比跨服务器查询更有效。

我认为这取决于具体情况。是的,可能不是你想要的答案,但这取决于情况。使用链接服务器确实会带来成本,特别是取决于您尝试返回的行数和您尝试运行的查询类型。您应该能够查看查询的执行计划,并查看用于命中链接服务器表的量。再加上返回结果所需的时间可能有助于确定是否需要它

至于将表格放在本地,那也要视情况而定。您需要最新的数据还是静态数据?如果是静态的,那么导入表不是一个坏主意。如果数据不断变化,而您需要这些变化,那么这可能不是最好的解决方案。您可以随时考虑创建SSIS包,以便在夜间执行此操作,但这也取决于具体情况


祝你好运。

正如斯盖德斯提到的,这要看情况而定

我自己在链接服务器查询方面的经验是,对于大型表,它们的速度非常慢。根据您编写查询的方式,可能必须在运行语句的服务器上对谓词进行求值(如果您要加入语句,则很可能会求值),这意味着可能会将整个表传输到该服务器,然后过滤结果。这对性能绝对不利