gpt4 book ai didi

sql-server - 同义词对 SQL Server 中链接服务器的性能影响

转载 作者:行者123 更新时间:2023-12-02 03:14:03 25 4
gpt4 key购买 nike

在本地服务器(SQL Server 2008 R2)上,我有一个名为 syn_view1 的同义词。指向链接服务器 remoteserver.remotedb.dbo.view1
这个 SLOW 查询需要 20 秒 运行。

select e.column1, e.column2
from syn_view1 e
where e.column3 = 'xxx'
and e.column4 = 'yyy'
order by e.column1

此 FAST 查询需要 1 秒 运行。
select e.column1, e.column2
from remoteserver.remotedb.dbo.view1 e
where e.column3 = 'xxx'
and e.column4 = 'yyy'
order by e.column1

这两个查询的唯一区别实际上是同义词的存在。
显然,同义词对查询的性能有影响。

SLOW 查询的执行计划是:
Plan                Cost %  Subtree cost
4 SELECT
I/O cost: 0.000000 CPU cost: 0.000000 Executes: 0
Cost: 0.000000 0.00 3.3521
3 Filter
I/O cost: 0.000000 CPU cost: 0.008800 Executes: 1
Cost: 0.008800 0.26 3.3521
2 Compute Scalar
I/O cost: 0.000000 CPU cost: 3.343333 Executes: 1
Cost: 0.000000 0.00 3.3433
1 Remote Query
I/O cost: 0.000000 CPU cost: 3.343333 Executes: 1
Cost: 3.343333 99.74 3.3433

对于 FAST 查询:
Plan            Cost %  Subtree cost
3 SELECT
I/O cost: 0.000000 CPU cost: 0.000000 Executes: 0
Cost: 0.000000 0.00 0.1974
2 Compute Scalar
I/O cost: 0.000000 CPU cost: 0.197447 Executes: 1
Cost: 0.000000 0.00 0.1974
1 Remote Query
I/O cost: 0.000000 CPU cost: 0.197447 Executes: 1
Cost: 0.197447 100.00 0.1974

我的理解是,在 SLOW 查询中,服务器从远程服务器获取所有数据,然后应用过滤器(尽管没有索引),而在 FAST 查询中,服务器从远程服务器获取过滤后的数据,从而使用远程索引.

有没有办法在快速的同时使用同义词?
也许是链接服务器的设置?本地数据库服务器?

谢谢您的帮助!

最佳答案

我会转储数据 没有 订购 到本地服务器上的临时表。然后我会从临时表中选择订单。订单几乎总是杀手。

关于sql-server - 同义词对 SQL Server 中链接服务器的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com