查询优化器


查询优化器


一   查询过程




二   查询优化器

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值