Atitit 查询优化器的流程attilax总结

1.1. 来理解该过程:1

1.2. 关于这些优化器的最重要原则的就是:尽可能的减少扫描范围,2

1.3. 、筛选条件分析2

1.4. 二、索引优化2

1.1. 来理解该过程:

这个图看上去有点复杂,我们来详细分析下,其实就是将这个优化阶段分为3个子阶段

<1>这个阶段仅考虑串行计划,也就说单处理器运行,如果这个阶段找到了一个好的串行计划,优化器就不会进入下一阶段。所以对于数据量少的情况,或者执行语句简单的情况下,基本采用的都是串行计划。

当然,如果这个阶段开销比较大,那么会进入到第2个阶段,再进行优化。

<2>这个阶段首先对第1阶段的串行计划进行优化,然后如果环境支持并行化操作,则进行并行化操作,通过进行比较,然后进行优化后的成本如果比较低则输出执行计划,如果成本还是比较高,则进入第2阶段,再继续优化。

<3>其实到达这个阶段就是优化的最后一个阶段了,这个阶段会对第2个阶段中采用串行和并行的比较结果进行最后一步优化,如果串行执行好那就进一步优化,当然如果并行执行好的话,则再继续并行优化。

其实第3阶段是查询优化器的无奈之举,当到达第3阶段了就是一个补救阶段,只能最后做优化了,优化完好不好的就只能按照这个执行计划执行了。

那么上述过程中,各个阶段的优化的原则有哪些:

1.2. 关于这些优化器的最重要原则的就是:尽可能的减少扫描范围,

不管是表或者索引,当然走索引比表好,索引的量也是越少越好,最理想的情况是只有一条或者几条。

所以,SQL Server也尊重上述原则,一直围绕着这个原则去优化。

1.3. 、筛选条件分析

所谓的筛选条件,其实就是我们所写的T-SQL语句中的WHERE语句后面的条件,我们会通过这里面的语句进行尽量缩小数据扫描范围,SQL Server通过这些语句来优化。

但是SQL Server也不是万能的,有些写法它也是不能识别的,也是我们写语句要避免的:

1.4. 二、索引优化

经过上面的筛选范围的确定之后,SQL Server紧接着开始索引的选择,首先要确定的第一件事就是筛选字段是否存在索引项,也就是说是否被索引覆盖。

当然,如果查询项为索引覆盖最好,如果不被索引覆盖,那么为了充分利用索引的特性,就引入了书签查找(bookmark)部分。

所以,鉴于此,我们在创建索引的时候,所参考的属性值就为筛选条件的列了

完全相同的查询语句,产生的查询计划完全不同,一个是索引扫描,一个则是高效的索引查找。

这里我只告诉你:FirstName like 'K%'的有1255行;而FirstName like 'Y%'只有37行,其中

其实,关于这里的原因就是统计信息在作怪了。

所以,特定的T-SQL语句不一定生成特定的查询计划,同样特定的查询计划不一定是最优的方式,影响的它的因素很多:关于索引、关于硬件、关于表内容、关于统计信息等诸多因素影响。

SQL Server调优系列基础篇(并行运算总结) - 指尖流淌 - 博客园.html

SQL Server调优系列进阶篇(查询优化器的运行方式) - 指尖流淌 - 博客园.html

查询优化器介绍-onlinedog-ITPUB博客.html

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon Al Rapanui

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门  阿尔 拉帕努伊

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源:attilax的专栏   http://blog.csdn.net/attilax

--Atiend

Atitit 查询优化器的流程attilax总结相关推荐

  1. Atitit sql计划任务与查询优化器--统计信息模块

    Atitit sql计划任务与查询优化器--统计信息模块 每一个统计信息的内容都包含以上三部分的内容. 我们依次来分析下,通过这三部分内容SQL Server如何了解该列数据的内容分布的. a.统计信 ...

  2. Atitit 手机号码选号 规范 流程 attilax总结 v2 r99.docx

    Atitit  手机号码选号 规范 流程  attilax总结 v2 r99.docx 1. Keyword关键词 1 2. 靓号的定义 1 3. 靓号的重要意义 与解决问题 为什么我们需要靓号指南, ...

  3. Atitit 手机号码选号 规范 流程 attilax总结 v4 s81.docx 1. Keyword关键词 2 2. 靓号的定义 2 3. 靓号的重要意义 与解决问题 为什么我们需要靓号

    Atitit  手机号码选号 规范 流程  attilax总结 v4 s81.docx 1. Keyword关键词 2 2. 靓号的定义 2 3. 靓号的重要意义 与解决问题 为什么我们需要靓号指南, ...

  4. pg数据库生成随机时间_如何测试数据库查询优化器

    我一直认为,查询优化器(Query Optimizer,后面简称优化器)一直是数据库领域 Top 级别的 hardcore 技术,自己也一直尝试去深入理解,但每每看到 TiDB 代码里面那一大坨 pl ...

  5. mysql优化器分析器_MySQL查询优化器的概念和原理整个执行过程

    原标题:MySQL查询优化器的概念和原理整个执行过程 什么是MySQL的Query Optimizer 专门负责优化SELECT语句的优化器模块MySQL Query Optimizer通过计算分析收 ...

  6. 递归下降语法分析器的构建_一文了解函数式查询优化器Spark SQL Catalyst

    大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 暴走大数据点击右侧关注,暴走大数据!记录一下个人对sparkSql的catalyst这个函数式的可扩展的查询优化器的理解,目录如下: 0. O ...

  7. 支付宝工程师如何搞定关系数据库的“大脑”——查询优化器

    前言 查询优化器是关系数据库系统的核心模块,是数据库内核开发的重点和难点,也是衡量整个数据库系统成熟度的"试金石". 查询优化理论诞生距今已有四十来年,学术界和工业界其实已经形成了 ...

  8. 怎样用mysql查询测试_如何测试数据库查询优化器

    我一直认为,查询优化器(Query Optimizer,后面简称优化器)一直是数据库领域 Top 级别的 hardcore 技术,自己也一直尝试去深入理解,但每每看到 TiDB 代码里面那一大坨 pl ...

  9. mysql 优化器关联查询_MySQL 查询优化器(二)

    1.6多个查询字段(常量条件) 多个查询字段的查询处理逻辑如下所示: JOIN:prepare阶段 setup_tables():同1.1测试. setup_fields():同1.1测试. setu ...

  10. Atitit.每周计划日程表 流程表v3

    Atitit.每周计划日程表 流程表 每周趋势总结 新特性聚合  最佳实践聚合. 上周总结 本度计划 检查于推进年度计划月度计划里程碑 检查于推进季度计划月度计划里程碑 上周Todo汇总结转.. 待报 ...

最新文章

  1. sql查询父节点所有子节点id_5招搞定SQL棘手问题,同事看到直呼“内行”
  2. NYOJ 745 蚂蚁问题(两)
  3. 使用 Android NDK 重用现有的 C 代码
  4. Applese 填数字
  5. Python实现Adaboost
  6. 从SAP客户主数据里直接创建商机(Opportunity) 1
  7. 阿里云推出首个数据库云上跑分平台,背后是什么逻辑?
  8. python中文读音-python3 - 文本读音器
  9. CMake macOS安装
  10. GIS游程编码两种方法
  11. yum安装wget命令
  12. 敌退我进 锂电产业链中日韩三国演义
  13. diskgenius克隆硬盘无法启动_克隆分区
  14. 【190227】VC++视频采集程序源代码
  15. 丿玩网站异常监控2012 3月17正式版,个人站长网站管理员必备良器
  16. 【生活感想】期末考试
  17. 美国医院权威评估体系
  18. 【微信小程序】设置页面背景色的方式
  19. python安装gensim_python gensim
  20. ORACLE updata是提示违反唯一约束条件

热门文章

  1. 新版手机浏览器_简约但不“简单”的手机浏览器
  2. 单CPU环境中如何实现多进程并行工作?
  3. 关于X WindowSystem 、gnome、以及安装vncserver
  4. 51cto,一个创造能让IT人员成长的论坛
  5. PoEdu - Windows阶段班 【Po学校】Windows编程 Lesson004_003-2 文件操作
  6. Sass与Compress实战:第一章
  7. HtmlHelper类在View中替代了纯HTML代码
  8. 杭电 1421 搬寝室
  9. [转载]Web前端开发工程师编程能力飞升之路
  10. 用shc加密shell脚本