疾风狼 发表于 2013-12-13 23:44:36

删除smon_scn_time表上索引后数据没有更新,SMON进程占cpu较高。

数据库版本:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for HPUX: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
操作系统版本:
HP-UX husoaa04 B.11.31 U ia64
问题描述:
从主机层面可以看到SMON进程CPU使用率过高

从AWR报告中可以看到如下SQL语句大量的被执行
delete from smon_scn_time where thread=0 and time_mp = (select min(time_mp) from smon_scn_time where thread=0);

对表结构进行分析报错


处理:
删除索引
drop index smon_scn_time_scn_idx;
drop index smon_scn_time_tim_idx;
创建索引
create unique index smon_scn_time_scn_idx on smon_scn_time(scn);
create unique index smon_scn_time_tim_idx on smon_scn_time(time_mp);
分析smon_scn_time表和索引
analyze table smon_scn_time validate structure cascade;

但是处理完成后还出现smon进程占用CPU过高的情况。

smom_scn_time 表中数据并长时间没有更新。

请问上述问题,需要手动清理smon_scn_time表中数据吗?还是需要观察一段时间?







Liu Maclean(刘相兵 发表于 2013-12-14 16:03:18

搞清楚smon执行的SQL有没有完成过, 虽然你创建了索引,但不代表 smon就能立即用上。

一般来说重启可以绕过该问题

疾风狼 发表于 2013-12-14 17:12:25

问题凌晨时候就处理了,处理完成后,我检查了一下无效对象。看到有不少sys的对象失效了,我重新编了无效对象后,smon_scn_time中的数据正常跟新了

疾风狼 发表于 2013-12-16 22:41:16

--查询无效对象无语
SELECT owner, object_type, object_name, status
FROM all_objects
WHERE status = 'INVALID'
ORDER BY owner;

--编译无效 SQL 脚本,然后运行语句
SELECT CASE WHEN object_type = 'SYNONYM' AND owner = 'PUBLIC' THEN
            'alter ' || owner || ' ' || DECODE(object_type, 'PACKAGE BODY', 'PACKAGE', object_type) || ' ' || object_name || ' ' || DECODE(object_type, 'PACKAGE BODY', 'COMPILE BODY', 'COMPILE') || ';'
            ELSE
            'alter ' || DECODE(object_type, 'PACKAGE BODY', 'PACKAGE', object_type) || ' ' || owner || '.' || object_name || ' ' || DECODE(object_type, 'PACKAGE BODY', 'COMPILE BODY', 'COMPILE') || ';'
            END "SQL_COMMANDS"
            FROM dba_objects
            WHERE object_type IN ('PACKAGE', 'PACKAGE BODY', 'VIEW', 'PROCEDURE', 'FUNCTION', 'TRIGGER', 'SYNONYM')
            AND status = 'INVALID'
            ORDER BY DECODE(object_type, 'TRIGGER', '99', '00');
页: [1]
查看完整版本: 删除smon_scn_time表上索引后数据没有更新,SMON进程占cpu较高。