1. 程式人生 > 其它 >Oracle 統計資訊收集常用儲存過程

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;
/