当前位置: 首页 > 编程笔记 >

SQL Server 使用join all优化 or 查询速度

仲孙焱
2023-03-14
本文向大家介绍SQL Server 使用join all优化 or 查询速度,包括了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 * 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毫秒

到此这篇关于SQL Server 使用join all优化 or 查询速度的文章就介绍到这了,更多相关SQL Server join all优化内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 使用filters优化查询 ElasticSearch支持多种不同类型的查询方式,这一点大家应该都已熟知。但是在选择哪个文档应该匹配成功,哪个文档应该呈现给用户这一需求上,查询并不是唯一的选择。ElasticSearch 查询DSL允许用户使用的绝大多数查询都会有各自的标识,这些查询也以嵌套到如下的查询类型中: constant_score filterd custom_filters_score

  • 我想在数据库中得到一些电子邮件,每个电子邮件都有一个状态。所有可能的状态都是一个表中的stock,在该表中它们都有权限(如show、edit、delete等)。那些电子邮件不是用户通过一个站点的权限,而是一个用户添加的电子邮件列表。 下面是表的结构: 电子邮件表 状态表 谢谢

  • 问题内容: 我希望从我的用户模型中检索一些信息,如下所示: 在主页中,我有一个 位置 过滤器,您可以在其中浏览来自国家或城市的用户。 所有字段还包含其中的用户数: 在主页上,然后我还有“学生和老师”页面,我希望仅提供有关这些国家和城市有多少老师的信息… 我想做的是创建一个对MongoDB的查询,以通过单个查询检索所有这些信息。 此刻查询如下: 问题是我不知道如何获取所需的所有信息。 我不知道如何获

  • 问题内容: 此查询需要153秒才能运行。中有数百万行。 我认为查询要花很长时间,因为where子句中的功能。但是,我需要在列上执行ltrim rtrim,而且日期也必须在格式上匹配。如何优化此查询? 说明计划: 首要的关键: 索引: 但是,在解释计划中,我看不到使用索引/主键。那是问题吗? 问题答案: 试试这个: 如果尚无时间,请从其外观(出生日期?)上删除该对象。除此之外,您还需要一些索引工作。

  • 问题内容: 这就是整个查询… 如果… 和… 有明显的理由吗? 正在服用? 扩展说明 问题答案: 您可以始终使用EXPLAIN或EXPLAIN EXTENDED 来查看MySql对查询所做的操作 您也可以用稍微不同的方式编写查询,是否尝试过以下方法? 看看效果如何会很有趣。我希望它会更快,因为目前,我认为MySql将为您拥有的每个节目运行内部查询1(这样一个查询将运行多次。联接应该更有效。) 如果希

  • 主要内容:概述,一、关联查询优化,1.左(右)外连接,2.内连接,3.JOIN语句原理,4.JOIN小结,5.Hash Join,二、子查询优化,三、排序优化,四、GROUP BY优化,五、优先考虑覆盖索引,六、使用前缀索引,七、索引下推ICP,八、其他查询优化,1.COUNT(*)与COUNT(具体字段)效率,2.不使用SELECT *,3.LIMIT 1优化,4.多使用commit概述 数据库调优的方式有多种: 建立索引、充分利用到索引、不让索引失效 对SQL语句进行优化 调优如缓冲、线程数