SQL Server 使用join all优化 or 查询速度
比如:,master,test,表示该用户为test的下级代码,test登录后可以看到test名下的业务和所有下级代理的业务。相关表的结构如下:
user表大约10万条记录 |-uid-|-user-|----site------| |1|test|,master,| |2|user|,master,test,| product表大约30万条记录 |-pid-|-product-|-puser-| |1|order01|test| |2|order02|user| |3|order03|user|
优化前的SQL语句如下:
select*fromproductaspleftjoinuserasuonp.puser=u.userwhereuser='test'orsitelike'%,test,%'
不使用or单独查询时,都不超过100毫秒,排除索引的问题。既然单个没问题,两种结果不存在重复记录,可以考虑joinall优化。
优化后的语句如下:
select*fromproductwherepidin( selectpidfromproductwhereuser='test'joinall( selectpidfromproductaspleftjoinuserasuonp.puser=u.userwheresitelike'%,test,%' ) )
用户A名下共有4000+个业务,优化前优化前11359毫秒,优化后621毫秒
用户B名下共有12个业务,优化前优化前10359毫秒,优化后78毫秒
到此这篇关于SQLServer使用joinall优化or查询速度的文章就介绍到这了,更多相关SQLServerjoinall优化内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短