暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
话聊Oracle统计信息的那点事
746
7页
11次
2020-01-15
5墨值下载
【前言】
Oracle
11g
版本中,统计信息为自动收集功能,在部署安装
11g Oracle
软件过程中,其中有一个步
便是提示是否启动这个功能
(
默认是启用这个功能
)
;且有时候在生产环境中,还会对一些对象做手动统计
信息的搜集,如果新搜集的统计信息产生的执行计划在实际生产中不符和生产要求,则需继续使用原有的
执行计划。
因平时接触此部分内容不是很频繁,但统计信息的搜集无疑又很重要,故本文对自动统计信息搜集及常规
操作做下介绍。
【大纲】
1.
啥事统计信息
2. Oracle
的统计信息自动搜集策略;
3.
手动搜集的常用命令;
一、
统计信息是个啥?
说统计信息前,先要说下
Oracle
的优化器
Oracle
数据库中的优化器又叫查询优化器(
Query Opmizer
)。它是
SQL
分析和执行的优化
SQL
Oracle
RBO
)与基于代价的优化器(
CBO)
RBO: Rule-Based Opmizaon
基于规则的优化器
CBO: Cost-Based Opmizaon
基于代价的优化器
RBO
ORACLE 6
沿
ORACLE 9i. ORACLE 10g
ORACLE
丢弃
RBO
,它有着一套严格的使用规则,只要你按照它去写
SQL
语句,无论数据表中的
内容怎样,也不会影响你的“执行计划”,就是
RBO
对数据不“敏感”;它根据
ORACLE
指定的优先顺序规则,指定的表进行执行计划的选择。比如在规则中,索引的优先
RBO
SQL
RBO
的各项细则,菜鸟写出来的
SQL
脚本性能可能非常差。
CBO
是一
RBO
更加理、靠的器,是从
ORACLE 8
中开引入但到
ORACLE
9i
ORACLE 10g
RBO
CBO
价”,
COST
,从中选用
COST
最低的执行方案,作为实际运行方案。它依赖数据库对象的
统计信息,统计信息的准确与否会影响
CBO
出最优的选择。如果对一次执行
SQL
时发现涉及对
象(表、索引等)没有被分析、统计过,那么
ORACLE
会采用一种叫做动态采样的技术,动态的收集表
和索引上的一些数据信息。
好了,这里改说下优化器依赖些统计信息,优化器统计范围:
表统计
--
行数,数,行平均长度
all_tables
NUM_ROWS
BLOCKS
AVG_ROW_LEN
统计
--
的数
NDV
),
NULL
的数,数据分
--DBA_TAB_COLUMNS
NUM_DISTINCT
NUM_NULLS
HISTOGRAM
索引统计
--
叶块,等级,聚簇
--DBA_INDEXES
LEAF_BLOCKS
CLUSTERING_FACTOR
BLEVEL
统统计
--I/O
性能与使用
--CPU
性能与使用
--
存储
aux_stats$
中,需要使用
dbms_stats
收集,
I/O
统计在
X$KCFIO
中;
上一篇推讲述了直方精品篇
_Oracle
的直方是个啥?》点击章链
简述直方作用
在表上收集统计时,
DBMS_STATS
收集表中的数据分信息,数据分最基本的信息是最大和最
小值,但是如果数据分倾斜的,这种级的统计对于优化器来说不的,对于倾斜的数据分,直方
图通常用来作为统计的一部分。”
接下来统计信息收集那
统计信息可分为自动收集和手动收集。
自动收集统计信息的情况:
自动统计收集在夜间进行,对有更改活动中等的对象自动统计应该足够;使用如下命令查
SELECT WINDOW_NAME,
REPEAT_INTERVAL,
ENABLED,
ACTIVE,
duration
FROM dba_scheduler_windows;
WINDOW_NAME REPEAT_INTERVAL ENABLED ACTIVE duraon
MONDAY_WINDOW freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0 TRUE FALSE +00
04:00:00.000000
TUESDAY_WINDOW freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0 TRUE FALSE +00
04:00:00.000000
WEDNESDAY_WINDOW freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0 TRUE FALSE +00
04:00:00.000000
THURSDAY_WINDOW freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0 TRUE FALSE +00
04:00:00.000000
FRIDAY_WINDOW freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0 TRUE FALSE +00
04:00:00.000000
SATURDAY_WINDOW freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0TRUE FALSE +00
20:00:00.000000
SUNDAY_WINDOW freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0 TRUE FALSE +00
20:00:00.000000
WEEKNIGHT_WINDOW freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0
FALSE FALSE +00 08:00:00.000000
WEEKEND_WINDOW freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0 FALSE FALSE +02
00:00:00.000000
可以每周一至周五
22:00
开始,
4
时进行统计信息的自动收集;
每周六周日早
06
00
开始,
20
时收集统计信息;
of 7
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜