ITPub博客

首页 > 数据库 > SQL Server > 查询优化器

查询优化器

原创 SQL Server 作者:starive 时间:2015-05-08 15:04:31 0 删除 编辑


查询优化器


一   查询过程




二   查询优化器

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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 索引及统计信息1
请登录后发表评论 登录
全部评论

注册时间:2014-01-18

  • 博文量
    143
  • 访问量
    492247