- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL性能优化_执行计划与统计信息
作者: 谭家俊
编码:
日期: 2015-07-13
版本: 1.0
概述
统计信息
Oracle数据库优化统计描述的详细信息的数据库及其对象。优化器成本模型依赖于收集有关查询中的对象的统计和数据库和主机在运行查询。统计信息是优化器选择一个SQL语句的最佳执行计划的关键。
执行计划
一个执行计划描述了一段SQL语句建议的执行方法,该计划显示ORACLE数据库的执行sql时步骤的组合。每一步都得到数据库中的物理数据行或准备为他们的用户发布的声明。如下图,优化器生成SQL语句输入的两个可能的执行计划,利用统计方法计算其成本,比较它们的成本,并选择成本最低的执行计划。
2
统计信息
3
项目KPI
Table statistics
–Number of rows(行数)
–Number of blocks(块数)
–Average row length(行平均长度)
Column statistics
–Number of distinct values (NDV) in a column(计算数据密度)
–Number of nulls in a column(列中null的数量)
–Data distribution (histogram)(数据分布,直方图)
–Extended statistics
Index statistics
–Number of leaf blocks(叶子块的数量)
–Number of levels(索引的高度)
–Index clustering factor(评估索引的查询成本,聚集因子)
System statistics
–I/O performance and utilization(I/O性能和利用)
–CPU performance and utilization(CPU性能和利用)
统计信息(数据字典)
4
项目KPI
统计信息(收集方法)
5
项目KPI
DBMS_STAT包
GATHER_INDEX_STATS : Index statistics
GATHER_TABLE_STATS : Table, column, and index statistics
GATHER_SCHEMA_STATS : Statistics for all objects in a schema
GATHER_DATABASE_STATS : Statistics for all objects in a database
GATHER_SYSTEM_STATS: CPU and I/O statistics for the system
这个包使您可以控制如何统计数据收集,包括对统计数据的收集,并行度的抽样方法,在分区表的统计粒度,等等。
注意:不要使用COMPUTE 和 ESTIMATE clauses of the ANALYZE 语句去收集统计信息,这些条款已经过时,要使用DBMS_STATS去替代。
统计信息(其它扩展)
6
项目KPI
控制自动优化统计信息收集
手动收集优化器统计信息
执行大容量加载和不能等待某些类型的维护窗口收集统计因为查询必须立即执行。
在一个不具有代表性的工作加载,自动收集固定表统计信息。
自动统计信息收集不会收集系统(system)统计信息。
白天经常被delete或者truncated之后又rebuild的表(经常变化的表)。
锁定和解锁统计信息
处理统计信息的缺失
在数据库中有一些表缺少统计信息,因为这些表中有些数据并不是在每日夜间维护窗口中加载的。在白天数据库处理其他工作负载时,不能为表收集统计信息。对此,oracle提供了动态采样来弥补统计信息的缺失。当启用动态采样之后,数据库会随机扫描表中的采样数据块。通过设置optimizer_dynamic_sampling初始化参数再数据库中启用/禁用动态采样。
导入和导出的优化器统计信息
还原以前版本的统计信息
验证新的统计信息
执行计划
7
执行计划(生成)
8
项目KPI
DBMS_XPLAN包
Oracle提供的PL/SQL包DBMS_XPLAN中包含了大量的功能,可用来获取给定查询的解释计划信息。在DBMS_XPLAN包中很多函数;DISPLAY函数可以用来快速获得一个查询的执行计划,并可以按照特定需求对输出的格式进行定制。
执行计划-例子1
9
Cardinality 是返回的结果集数据量,我们在对sql进行优化的时候最主要关注的是的设法减少Cardinality。
视图Dba_tables保存的是表相关的统计信息
视图dba_tab_cols保存的是列相关的统计信息
上图查询显示
您可能关注的文档
最近下载
- 西安交大少年班选拔考试语文试卷试题及答案(2025年).pdf VIP
- 2024年成人高考高起专《数学(文)》真题及答案(全网首发).doc
- 布料架配合塔吊吊管混凝土浇筑专项方案(2023年.1.10).docx
- 2025年麻醉科质量控制专家共识.pdf VIP
- 养老院老人入院评估表、老人治疗阶段评价表,老人日常生活能力表.pdf VIP
- DB43T 1301-2017 不锈钢水表箱.docx VIP
- 2024北京人大附中初二(上)期中物理(教师版).docx
- 2024全国职业院校技能大赛GZ084舞台布景赛项规程+赛题 (2).docx VIP
- 2025至2030中国公务机行业产业运行态势及投资规划深度研究报告.docx VIP
- 视觉传达传达设计.pptx
文档评论(0)