加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 百科 > 正文

Oracle 12c SYSAUX 表空间增长过快,主要是热表,统计信息,优化

发布时间:2021-03-10 13:05:36 所属栏目:百科 来源:网络整理
导读:副标题#e# ? 1. 通过SQL语句查看 SYSAUX 占用情况,和表空间里对象占用情况 SQL SET LINES 120SQL COL OCCUPANT_NAME FORMAT A30SQL SELECT OCCUPANT_NAME,SPACE_USAGE_KBYTES FROM V$SYSAUX_OCCUPANTS ORDER BY SPACE_USAGE_KBYTES DESC;?OCCUPANT_NAME SP

一旦发生此状况,如下方法可以用来直接清理数据而避免产生大量redo 和undo信息。

### 检查表 WRI$_ADV_OBJECTS和 Auto Stats Advisor Task相关的有效条数 ###
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;

?



P.S: 表 WRI$_ADV_OBJECTS_NEW在上述命令都成功执行后可删除。

从数据字典删除统计信息任务,避免再次造成问题。

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

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读