暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 更改优化器统计信息的保留期限

原创 Asher.HU 2021-02-04
681


您可以使用以下DBMS_STATS.ALTER_STATS_HISTORY_RETENTION步骤配置保留期默认值为31天。

先决条件

要运行此过程,您必须既具有SYSDBA特权,又具有ANALYZE ANY DICTIONARYANALYZE ANY系统特权。

假设条件

本教程假定以下内容:

  • 优化程序统计信息的当前保留期为31天。
  • 您每年都会运行查询作为年度报告的一部分。要保留统计信息历史记录超过365天,以便您可以使用去年的计划(以防现在出现次优计划),请将保留期限设置为366天。
  • 您要创建一个set_opt_stats_retention可用于更改优化器统计信息保留期的PL / SQL过程

要更改优化器统计信息的保留期限,请执行以下操作:

  1. 启动SQL * Plus,并以必需的特权连接到数据库。
  2. 创建一个更改保留期限的过程。

    例如,创建以下过程:

    CREATE OR REPLACE PROCEDURE set_opt_stats_retention
      ( p_stats_retn   IN NUMBER )
    IS
      v_stats_retn NUMBER;
    BEGIN
      v_stats_retn := DBMS_STATS.GET_STATS_HISTORY_RETENTION;
      DBMS_OUTPUT.PUT_LINE('Old retention setting is ' ||v_stats_retn|| '.');
      DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(p_stats_retn);
      v_stats_retn := DBMS_STATS.GET_STATS_HISTORY_RETENTION;
      DBMS_OUTPUT.PUT_LINE('New retention setting is ' ||v_stats_retn|| '.');
    END;
    /
    
  3. 将保留期更改为366天。

    例如,执行在上一步中创建的过程(包括示例输出):

    SQL> EXECUTE set_opt_stats_retention(366)
    
    The old retention setting is 31.
    The new retention setting is 366.
     
    PL/SQL procedure successfully completed.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论