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

posted @   踏雪无痕2017  阅读(562)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示