Oracle 统计信息收集常用存储过程
--收集数据库统计信息
BEGIN
SYS.DBMS_STATS.GATHER_DATABASE_STATS (
Granularity => 'ALL'
,Options => 'GATHER'
,Gather_Sys => TRUE
,Estimate_Percent => 40
,Method_Opt => 'FOR ALL COLUMNS SIZE 1'
,Degree => 20
,Cascade => TRUE
,No_Invalidate => FALSE);
END;
/
--收集schema统计信息
BEGIN
SYS.DBMS_STATS.GATHER_SCHEMA_STATS (
OwnName => '&SCHEMA_NAME'
,Granularity => 'ALL'
,Options => 'GATHER AUTO'
,Estimate_Percent => 30
,Method_Opt => 'FOR ALL COLUMNS SIZE 1'
,Degree => 8
,Cascade => TRUE
,No_Invalidate => FALSE);
END;
/
--收集表以及表上索引统计信息
BEGIN
DBMS_STATS.GATHER_TABLE_STATS (
OwnName => '&SCHEMA_NAME',
TabName => '&TABLE_NAME',
Estimate_Percent => 10,
Method_Opt => 'FOR ALL COLUMNS SIZE 1',
Degree => 4,
Cascade => TRUE,
No_Invalidate => FALSE) ;
end;
/
--收集表分区以及分区上索引统计信息
BEGIN
DBMS_STATS.GATHER_TABLE_STATS (
OwnName => '&SCHEMA_NAME',
TabName => '&TABLE_NAME',
PartName => ‘&PARTITION_NAME’,
granularity => 'SUBPARTITION'
Estimate_Percent => 10,
Method_Opt => 'FOR ALL COLUMNS SIZE 1'
Degree => 4,
Cascade => TRUE,
No_Invalidate => FALSE) ;
--收集数据字典、fixed table、system统计信息
BEGIN
SYS.DBMS_STATS.GATHER_DICTIONARY_STATS (
Granularity => 'AUTO'
,Options => 'GATHER STALE'
,Estimate_Percent => SYS.DBMS_STATS.AUTO_SAMPLE_SIZE
,Method_Opt => 'FOR ALL COLUMNS SIZE AUTO '
,Degree => NULL
,Cascade => DBMS_STATS.AUTO_CASCADE
,No_Invalidate => DBMS_STATS.AUTO_INVALIDATE);
END;
/
BEGIN
SYS.DBMS_STATS.GATHER_FIXED_OBJECTS_STATS (
No_Invalidate => DBMS_STATS.AUTO_INVALIDATE);
END;
/
BEGIN
SYS.DBMS_STATS.GATHER_SYSTEM_STATS (
gathering_mode => 'NOWORKLOAD');
END;
/
本文来自博客园,作者:踏雪无痕2017,转载请注明原文链接:https://www.cnblogs.com/oradba/p/15673363.html

浙公网安备 33010602011771号