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



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

相关文章
wamp You don't have permission to access / on this server等问题的解决.
原文: wamp You don't have permission to access / on this server等问题的解决. 安装完wamp之后,安装网上的教程设置虚拟路径,出现了问题,同样的问题由不同的原因导致。
871 0
SQL Server阻塞查询语句
SQL Server阻塞查询语句  SQL Server的阻塞查询主要来自sys.sysprocesses。通常在处理时需要加入其它相关的视图或表,例如如sys.dm_exec_connections,sys.dm_exec_sql_text。
1217 0
SQL编码中注意的性能问题
1、选择合适的数据类型 为列选择最小化的数据类型 如果一列中的文本长度不一,使用VARCHAR而不是CHAR 不存储Unicode不要使用NVARCHAR或者NCHAR 如果一行的长度不超过8000,使用VARCHAR而不是TEXT 对于仅存数字的列要使用数字类型而不要用字符类型 不要使用字符串类型存储日期数据。2、谨慎使用触发器 保持触发器内的代码最小化 可能的情况下尽量
928 0
SQLServer 2012 登陆异常问题
## 背景 RDS FOR SQLServer 2012 已经上线一段时间了,从反馈来看大家遇到了很多权限相关的问题,所以建议把[RDS FOR SQLServer 2012权限提升](https://yq.aliyun.com/articles/71919?spm=5176.100240.searchblog.8.LWPvRT)这篇文章作为基础知识先能够理解;再之后针对大家经常遇到的CASE我
1651 0
sql server 性能调优 资源等待之网络I/O
原文:sql server 性能调优 资源等待之网络I/O 一.概述    与网络I/O相关的等待的主要是ASYNC_NETWORK_IO,是指当sql server返回数据结果集给客户端的时候,会先将结果集填充到输出缓存里(ouput cache),同时网络层会开始将输出缓存里的数据打包,由客户端接收。
958 0
14491
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载