Oracle 12c SYSAUX 表空间增长过快,主要是热表,统计信息,优化
发布时间:2021-03-12 01:43:50 所属栏目:站长百科 来源:网络整理
导读:? 1. 通过SQL语句查看 SYSAUX 占用情况,和表空间里对象占用情况 SQL SET LINES 120 SQL COL OCCUPANT_NAME FORMAT A30SQL SELECT OCCUPANT_NAME,SPACE_USAGE_KBYTES FROM V$SYSAUX_OCCUPANTS ORDER BY SPACE_USAGE_KBYTES DESC;?OCCUPANT_NAME SPACE_USAGE_
一旦发生此状况,如下方法可以用来直接清理数据而避免产生大量redo 和undo信息。 SQL> SELECT COUNT(*) FROM WRI$_ADV_OBJECTS WHERE TASK_ID=(SELECT DISTINCT ID FROM WRI$_ADV_TASKS WHERE NAME=‘AUTO_STATS_ADVISOR_TASK‘); ### 创建新表并保留非 AUTO_STATS_ADVISOR_TASK数据 ### SQL> CREATE TABLE WRI$_ADV_OBJECTS_NEW AS SELECT * FROM WRI$_ADV_OBJECTS WHERE TASK_ID !=(SELECT DISTINCT ID FROM WRI$_ADV_TASKS WHERE NAME=‘AUTO_STATS_ADVISOR_TASK‘); ? ### 截断原表 ### SQL> TRUNCATE TABLE WRI$_ADV_OBJECTS; ? ### 把备份表中数据插回原表 ### SQL> INSERT /*+ APPEND */ INTO WRI$_ADV_OBJECTS SELECT * FROM WRI$_ADV_OBJECTS_NEW; ? ### 重建索引 ### SQL> ALTER INDEX WRI$_ADV_OBJECTS_IDX_01 REBUILD; SQL> ALTER INDEX WRI$_ADV_OBJECTS_PK REBUILD; ?
从数据字典删除统计信息任务,避免再次造成问题。 DECLARE v_tname VARCHAR2(32767); BEGIN v_tname := ‘AUTO_STATS_ADVISOR_TASK‘; DBMS_STATS.DROP_ADVISOR_TASK(v_tname); END; / ? DBA可以在任何时间重建统计信息顾问任务 (AUTO_STATS_ADVISOR_TASK),具体参考如下办法: SQL> EXEC DBMS_STATS.INIT_PACKAGE(); ? 统计信息顾问任务 (AUTO_STATS_ADVISOR_TASK)也可以被直接禁用:DECLARE filter1 CLOB; BEGIN filter1 := DBMS_STATS.CONFIGURE_ADVISOR_RULE_FILTER(‘AUTO_STATS_ADVISOR_TASK‘,‘EXECUTE‘,NULL,‘DISABLE‘); END; / ? ?新的增强补丁已经被申请,将会提供更方便的方法来禁用这个任务。Unpublished Bug 26749785 NEED TO HAVE MORE CONTROL IN DICTIONARY FOR AUTO_STATS_ADVISOR_TASK (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |