SQL Server查询性能问题调优案例-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

SQL Server查询性能问题调优案例

简介:

这个是朋友让我帮忙看的,一个查询跑的很慢,运行一次要超过1分钟。我看了一下执行计划:

 

SouthEast

 

这里面两张大表的Join竟然选择了Nested Loop Join(一张表返回170W另外一张返回40W数据).一般Nested Loop Join试用在外部表数据比较小,而内部表又有索引的情况下,性能好。但是这里两张表的数据都很大,这里用Nested Loop Join有点不合适。我尝试更新过统计信息,但是执行计划仍不改变。

 

由于两张表都有索引,有固定的排序方式,所以我稍微改了一下查询将 Inner join修改为Inner merge join,强制SQL Server选择Merge Join.下面是修改后的执行计划:

 

SouthEast

 

这次执行完试用了6秒钟,比之前要快了十几倍,所以有时候SQL Server并不一定可以选择非常合适的执行计划,有的时候还是需要手动调整。


本文转自 lzf328 51CTO博客,原文链接:http://blog.51cto.com/lzf328/1351643



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章