博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 强制指定索引加快查询速度
阅读量:5833 次
发布时间:2019-06-18

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

转自:http://blog.csdn.net/qq380107165/article/details/45502641

 

今天遇到一个查询问题,多加了一个查询参数导致查询超时报黄,经过公司DBA改进,涨姿势了。现在发出来跟大家分享一下!~

1 SELECT m.* FROM TB_UserSiteGroup u WITH(NOLOCK),Message.dbo.View_Message_8 m WITH(NOLOCK)2 WHERE  m.FromUserID = u.UserID   AND u.AdminID =880982 and m.state=1  and m.touserID=0 AND u.siteid = 83 ORDER BY  m.time DESC

 

这是原始SQL,多加了u.AdminID =880982 参数后导致查询超时。

查询后跟WITH(NOLOCK) 理论上可以加快查询速度的33%,但有可能造成脏读(百度一下,你就知道)

这是改进后的SQL:

 

1 SELECT  m.*2 FROM    TB_UserSiteGroup u WITH ( NOLOCK,INDEX=IX_TB_UserSiteGroup_SiteID )3   JOIN       Message.dbo.View_Message_8 m WITH ( NOLOCK )4 ON    m.FromUserID = u.UserID5         AND m.state = 16         AND m.touserID = 07         AND u.siteid = 88         AND u.AdminID = 8809829 ORDER BY m.time DESC

 

由之前查询时间2分多变成现在秒出。。。新建了IX_TB_UserSiteGroup_SiteID索引,并强制指定查询索引。

 

由之前逗号连接(不知道叫啥)改为JOIN连接形式。

 

问了DBA,DBA说JOIN连接会自动搜索最优、最匹配索引进行查找,而逗号连接则是根据where 条件进行匹配查找。之间存在功能损耗。

这些是我模糊记得的东西,DBA说的具体都记不清了,可能不准确,欢迎各位同学补充探讨。

 

1 SELECT m.* FROM TB_UserSiteGroup u WITH(NOLOCK,INDEX=IX_TB_UserSiteGroup_SiteID),Message.dbo.View_Message_8 m WITH(NOLOCK)2 WHERE  m.FromUserID = u.UserID   AND u.AdminID =880982 and m.state=1  and m.touserID=0 AND u.siteid = 83 ORDER BY  m.time DESC

 

这段SQL是原始SQL加了指定索引后的结果。

查询耗时也是秒出。。。
从数据量和时间来看,暂时还看不出JOIN连接和逗号连接的本质区别。之后会跟进学习。

 

 

暂时就是这么多了,记下来供以后参考,也供大家参考学习。

欢迎 大拿 们不吝赐教。补充不对的地方……

转载于:https://www.cnblogs.com/bjxingch/articles/7324374.html

你可能感兴趣的文章
水晶头
查看>>
自定义数组方法
查看>>
基础(优化):Unity3D移动游戏的优化
查看>>
02_Hive安装简介
查看>>
SQLite可视化管理工具汇总
查看>>
这两行代码 你想 表达什么,fuck,
查看>>
关于delphi XE7中的动态数组和并行编程(第一部分)
查看>>
html5 video.js 使用及兼容所有浏览器
查看>>
CSS 相对定位 绝对定位
查看>>
随机函数真的概率平均么
查看>>
javaweb各种框架组合案例(一):maven+spring+springMVC+jdbcTemplate
查看>>
主流RAII class的存在价值——..
查看>>
[USACO08OPEN]牛的车Cow Cars
查看>>
gj13 asyncio并发编程
查看>>
何时使用hadoop fs、hadoop dfs与hdfs dfs命令
查看>>
关于Slow HTTP Denial of Service Attack slowhttptest的几种慢攻击DOS原理
查看>>
网络基础
查看>>
java &与&& |与||的区别
查看>>
架构师速成-架构目标之可用性
查看>>
2014年辛星解读css第六节
查看>>