设为首页 加入收藏

TOP

SQLServer查询性能问题调优案例
2014-11-23 23:37:26 来源: 作者: 【 】 浏览:9
Tags:SQLServer 查询 性能 问题 案例

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

\

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

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

\

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLServer(2008)中通过触发器进.. 下一篇sqlite3数据库归纳

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: