首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于使用2012语句中的IP地址而导致查询缓慢

由于使用2012语句中的IP地址而导致查询缓慢
EN

Stack Overflow用户
提问于 2013-12-04 17:12:14
回答 1查看 584关注 0票数 0

我们在SQL server上遇到了一个缓慢的查询问题。

我们有一些软件在查询中使用SQL Server侦听器的虚拟主机名,这导致查询性能缓慢。

代码语言:javascript
复制
UPDATE table SET
       status = 1
FROM  [HOSTNAMEOFSQLLISTENER].database.dbo.things AS things
WHERE bar = foo

看一下执行计划,它把所有的时间都花在了“远程扫描”阶段,我不知道为什么会这样。

奇怪的是,当运行以下查询时,将侦听器的IP地址替换为侦听器指向的SQL服务器的IP地址(如果通过管理工作室通过侦听器连接到SQL服务器,则确保它是同一台服务器),执行计划是合理的(使用索引),查询在一小部分时间内完成。

代码语言:javascript
复制
UPDATE table SET
       status = 1
FROM  [HOSTNAMEOFSQLSERVERDIRECTLY].database.dbo.things AS things
WHERE bar = foo

显然,这种行为在SQLServer2008并不是一个问题,但我还没有得到证实。

所以我有两个问题:

1)为什么执行计划不同?

2)在这些场景中,是否将侦听器的IP地址视为最佳实践?

干杯

艾伦

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 22:41:12

问题归结为无法读取链接服务器上的表统计信息,因此查询优化器不知道从哪里开始。shea/archive/2009/07/21/performance-impact-linked-server-security-configuration-and-how-it-can-hurt-you.aspx

如果您没有真正地来回传递数据,那么首先要尝试的是将更新封装在存储的proc中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20381644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档