重庆思庄Oracle、Redhat认证学习论坛

标题: oracle数据库表统计信息 [打印本页]

作者: jiawang    时间: 2024-7-23 16:35
标题: oracle数据库表统计信息
本帖最后由 jiawang 于 2024-7-23 16:50 编辑

oracle数据库表统计信息未及时更新会导致oracle基于成本的执行计划可能不是最优,查看执行计划是没问题的,但sql实际执行起来确很慢。

查询oracle数据库表统计信息最后更新时间:

SELECT TABLE_NAME, LAST_ANALYZED,a.* FROM ALL_TAB_STATISTICS a WHERE A.OWNER = 'INFO';


更新oracle数据库表统计信息:

begin
  dbms_stats.gather_table_stats(ownname => 'info',
                                tabname => 'tproduct',
                                cascade => true,
                                degree  => 12);
end;

更新整个数据库的统计信息:

BEGIN
    DBMS_STATS.GATHER_DATABASE_STATS(
        Ownname        => NULL,
        Estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
        Method_opt     => 'FOR ALL COLUMNS SIZE AUTO',
        Degree         => DBMS_STATS.DEFAULT_DEGREE,
        Cascade        => TRUE,
        Stats_level    => 'ALL');
END;
/

BEGIN
    DBMS_STATS.GATHER_SCHEMA_STATS(
        Ownname        => 'YOUR_SCHEMA_NAME',
        Estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
        Method_opt     => 'FOR ALL COLUMNS SIZE AUTO',
        Degree         => DBMS_STATS.DEFAULT_DEGREE);
END;
/







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2