创业论坛网站有哪些,无锡公司做网站,高端定制外贸网站,电子商务网站建设的结论转自#xff1a;http://blog.csdn.net/qq380107165/article/details/45502641 今天遇到一个查询问题#xff0c;多加了一个查询参数导致查询超时报黄#xff0c;经过公司DBA改进#xff0c;涨姿势了。现在发出来跟大家分享一下#xff01;~ 1 SELECT m.* FROM TB_UserSite…转自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.state1 and m.touserID0 AND u.siteid 8
3 ORDER BY m.time DESC 这是原始SQL多加了u.AdminID 880982 参数后导致查询超时。 查询后跟WITH(NOLOCK) 理论上可以加快查询速度的33%但有可能造成脏读百度一下你就知道 这是改进后的SQL 1 SELECT m.*
2 FROM TB_UserSiteGroup u WITH ( NOLOCK,INDEXIX_TB_UserSiteGroup_SiteID )
3 JOIN Message.dbo.View_Message_8 m WITH ( NOLOCK )
4 ON m.FromUserID u.UserID
5 AND m.state 1
6 AND m.touserID 0
7 AND u.siteid 8
8 AND u.AdminID 880982
9 ORDER BY m.time DESC 由之前查询时间2分多变成现在秒出。。。新建了IX_TB_UserSiteGroup_SiteID索引并强制指定查询索引。 由之前逗号连接不知道叫啥改为JOIN连接形式。 问了DBADBA说JOIN连接会自动搜索最优、最匹配索引进行查找而逗号连接则是根据where 条件进行匹配查找。之间存在功能损耗。 这些是我模糊记得的东西DBA说的具体都记不清了可能不准确欢迎各位同学补充探讨。 1 SELECT m.* FROM TB_UserSiteGroup u WITH(NOLOCK,INDEXIX_TB_UserSiteGroup_SiteID),Message.dbo.View_Message_8 m WITH(NOLOCK)
2 WHERE m.FromUserID u.UserID AND u.AdminID 880982 and m.state1 and m.touserID0 AND u.siteid 8
3 ORDER BY m.time DESC 这段SQL是原始SQL加了指定索引后的结果。查询耗时也是秒出。。。从数据量和时间来看暂时还看不出JOIN连接和逗号连接的本质区别。之后会跟进学习。 暂时就是这么多了记下来供以后参考也供大家参考学习。 欢迎 大拿 们不吝赐教。补充不对的地方……转载于:https://www.cnblogs.com/bjxingch/articles/7324374.html