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

Oracle 19C 从命令行设置Optimizer Statistics首选项

原创 Asher.HU 2021-02-04
817


如果您不使用Cloud Control来设置优化器统计信息首选项,则可以从命令行调用DBMS_STATS过程。

先决条件

此任务具有以下先决条件:

  • 要设置全局或数据库首选项,您必须具有SYSDBA特权,或者既具有特权ANALYZE ANY DICTIONARY又具有ANALYZE ANY系统特权。
  • 要设置架构首选项,您必须以所有者身份连接,或者具有SYSDBA特权,或者具有ANALYZE ANY系统特权。
  • 要设置表首选项,您必须以表的所有者身份连接或具有ANALYZE ANY系统特权。

要从命令行设置优化器统计信息首选项:

  1. 在SQL * Plus或SQL Developer中,以具有必要特权的用户身份登录数据库。
  2. (可选)调用该DBMS_STATS.GET_PREFS程以查看在对象级别或全局级别(如果未设置特定表)下设置的首选项。

    例如,按如下方式获取STALE_PERCENT参数设置sh.sales

    SELECT DBMS_STATS.GET_PREFS('STALE_PERCENT', 'SH', 'SALES') 
    FROM   DUAL;
    
    复制
  3. 表12-1执行适当的过程,并指定以下参数:
    • ownname-设置用户名(只有SET_TAB_PREFSSET_SCHEMA_PREFS
    • tabname-设置表格名称(只有SET_TAB_PREFS 
    • pname -设置参数名称
    • pvalue -设置参数值
    • add_sys-包括系统表(SET_DATABASE_PREFS可选

    以下示例指定在sh.sales更改该表的统计信息之前必须更改其中13%的行

    EXEC DBMS_STATS.SET_TABLE_PREFS('SH', 'SALES', 'STALE_PERCENT', '13');
    
    复制
  4. (可选)查询*_TAB_STAT_PREFS视图以确认更改。

    例如,查询DBA_TAB_STAT_PREFS如下:

    COL OWNER FORMAT a5
    COL TABLE_NAME FORMAT a15
    COL PREFERENCE_NAME FORMAT a20
    COL PREFERENCE_VALUE FORMAT a30
    SELECT * FROM DBA_TAB_STAT_PREFS;
    
    复制

    输出示例如下:

    OWNER TABLE_NAME      PREFERENCE_NAME      PREFERENCE_VALUE
    ----- --------------- -------------------- ------------------------------
    OE    CUSTOMERS       NO_INVALIDATE        DBMS_STATS.AUTO_INVALIDATE
    SH    SALES           STALE_PERCENT        13
    复制

也可以看看:

《 Oracle数据库PL / SQL软件包和类型参考》中有关程序单元的参数名称和值的描述

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

评论