查询优化器


查询优化器


一   查询过程




二   查询优化器

2.1 产生执行计划
 <1>  评估每个计划的开销
 <2>  查询执行及计划缓存
 <3>  提示

2.2  连接
 <1> 连接顺序
        优化器在决定相关关联的时候,需要考虑两个方面:
        第一  关联顺序的选择
        第二  关联算法的选择
 <2> 连接种类       
         嵌套循环、合并联接、哈希联接


三  执行引擎

3.1  数据访问操作
  <1> 扫描
  <2> 查找
  <3> 书签查找


3.2  聚合操作
  <1> 排序和哈希
  <2>  流聚合
  <3> Hash聚合

3.3 并行操作

四  统计信息和开销预估

4.1 统计信息
   <1> 创建和更新统计信息
   <2> 检查统计对象
          通过sys.stats目录视图来查看某个对象的统计信息情况,示例如下:
         
  1. select *from sys.stats
  2. where object_id = object_id('Sales.SalesOrderDetail')

4.2  统计信息维护

4.3  计算列上的统计信息

4.4 过滤索引上的统计信息
     当创建过滤索引时,会自动创建对应的统计信息,也可以通过在 create statistics 语句中加上 where子句来实现。
  
  1. create statistics California
  2. on Person.Address(City)
  3. where StateProvinceID=9

4.5  预估数量错误

  1. set statistics profile on
  2. go

  3. select *from sales.salesorderdetail
  4. where orderqty * unitprice > 10000
  5. go

  6. set statistics profile off
  7. go

4.6  更新统计信息
   
  1. update statistics dbo.Address with rowcount = 1000000, pagecount = 100000

 

五  优化器工作过程

   优化器的工作过程分为: 简化、简单计划优化和完整计划优化


1. 简化

2. 简单计划优化

3. 完整计划优化

4.  优化过程

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26435490/viewspace-1629795/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26435490/viewspace-1629795/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 查询优化器是数据库系统中的一个关键组件,它负责解析和优化用户提交的查询语句,以达到更高效的查询性能。查询优化器的艺术在于如何通过多种技巧和算法来优化查询计划,以提高查询的执行效率。 首先,查询优化器会根据查询语句的结构和语义进行解析,该过程称为查询解析。它会识别查询语句中的表名、列名以及查询条件,并建立相应的数据结构来表示查询语句的语义。 然后,查询优化器会根据查询解析的结果生成多个可能的查询计划,这个过程被称为查询规划。查询规划的目标是找到最佳的查询计划,在给定的约束条件下实现最小的代价。 为了选择最佳的查询计划,查询优化器会采用一系列的优化技术和算法。其中一个重要的技术是基于成本的查询优化。查询优化器会对每个可能的查询计划进行成本估计,然后选择代价最小的查询计划作为最佳查询方案。 此外,查询优化器还会利用统计信息来帮助生成最佳的查询计划。统计信息包括表的大小、数据分布情况等,它可以提供给查询优化器一个更准确的查询执行代价估计,从而使得选择最佳查询计划的决策更加准确。 最后,查询优化器还会考虑一些特定的优化技巧,例如查询重写、联接顺序优化、子查询替换等。这些技巧可以帮助查询优化器生成更高效的查询计划,最终提升整个查询性能。 综上所述,查询优化器是数据库系统中至关重要的组件,它利用多种技巧和算法来优化查询计划,以提高查询性能。查询优化器的艺术在于权衡各种因素,选择最佳的查询计划,从而使得查询的执行更加高效。 ### 回答2: 查询优化器是数据库管理系统中的一个重要组件,它起着优化查询性能的关键作用。查询优化的目标是通过选择最合适的查询执行计划,提高查询性能和效率,减少资源消耗。 查询优化器的艺术在于将复杂的查询语句转化为最优的执行计划。查询优化器需要考虑多个因素,包括表的大小、索引的使用、连接操作的顺序等。首先,优化器会分析查询语句的结构和条件,确定最佳的数据访问路径。其次,优化器会根据查询的成本模型和统计信息,评估可能的执行计划,并选择最优的方案。最后,优化器会生成并返回执行计划,供查询处理器执行。 查询优化器的艺术在于找到一个平衡点,既要考虑查询的执行时间,又要考虑资源的消耗。优化器需要根据查询的特点,权衡不同执行计划的优劣,选择最适合的执行策略。此外,优化器还需要不断优化和调整计划,以适应数据库中数据的变化和查询模式的变化。 优化查询的过程是一个复杂而细致的工作。它需要深入理解数据库的结构和特性,熟悉数据库引擎的实现细节,并使用各种优化技术和算法。此外,实践经验也非常重要,通过不断的实践和调优,才能够提高优化器的准确性和效率。 总结而言,查询优化器是数据库管理系统中一个极为重要的组件,它通过选择最优的执行计划,提高查询性能和效率。查询优化器的艺术在于平衡查询的执行时间和资源消耗,找到最适合的执行策略。它需要深入理解数据库结构和特性,并使用各种优化技术和算法。通过不断的实践和调优,才能够提高优化器的准确性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值