博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server查询性能问题调优案例
阅读量:6005 次
发布时间:2019-06-20

本文共 438 字,大约阅读时间需要 1 分钟。

这个是朋友让我帮忙看的,一个查询跑的很慢,运行一次要超过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

你可能感兴趣的文章
[翻译] 关闭时最小化到系统托盘中的单实例应用程序
查看>>
多线程编程(2) - 多线程同步之 Event (事件对象)
查看>>
【转】2013年开发者需要了解的10大开发趋势和技能
查看>>
[转]DPM2012系列之十二:还原exchange2010用户邮件
查看>>
在ASP.NET MVC中使用Knockout实践08,使用foreach绑定集合
查看>>
马无夜草不肥:程序员做业余项目的重要性
查看>>
AsyncTask的用法
查看>>
Windows 2003 上使用 Windows Live Writer
查看>>
一页纸IT项目管理:大道至简的实用管理沟通工具
查看>>
UVA 10601 Cubes(Burnside引理)
查看>>
java学习笔记-4 正则表达式
查看>>
ubuntu14.04安装百度云Bcloud
查看>>
一起谈.NET技术,C#中访问私有成员
查看>>
盘点云计算服务中的隐患
查看>>
分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月18日-6月24日)
查看>>
本书资料下载汇总
查看>>
汽车知识:车内异味的清除方法
查看>>
大整数乘法
查看>>
SQL语句使用详解
查看>>
在windows中将Tomcat作为服务启动
查看>>