SQL Server中怎么用sql语句join all优化or查询
Admin 2022-05-31 群英技术资讯 950 次浏览
这篇文章给大家分享的是“SQL Server中怎么用sql语句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 * from product as p left join user as u on p.puser=u.user where user='test' or site like '%,test,%'
不使用 or 单独查询时,都不超过100毫秒,排除索引的问题。既然单个没问题,两种结果不存在重复记录,可以考虑 join all 优化。
优化后的语句如下:
select * from product where pid in (
select pid from product where user='test' join all (
select pid from product as p left join user as u on p.puser=u.user where site like '%,test,%'
)
)
用户A名下共有4000+个业务,优化前 优化前11359毫秒,优化后621毫秒
用户B名下共有12个业务,优化前 优化前10359毫秒,优化后78毫秒
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享sql中order by和group by的区别,很多新手在刚接触order by和group by语句时,对两者的使用容易混淆,对此下面就简单的讲讲order by和group by分别是什么以及怎样使用,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获。
这篇文章主要介绍了SQL Server 触发器,触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。需要的朋友可以参考一下
这篇文章主要介绍了SQL Server中交叉联接的用法介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要为大家详细介绍了如何用注解编写创建表的SQL语句,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了SQLServer清理日志文件方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008