Tag Archives: STATSPACK

收集STATSPACK的级别

虽然AWR功能已经完全可以替代STATSPACK的功能,但是目前存在的9i的数据库还有不少,而且却是发现有不少人不了解如何更改STATSPACK的级别。 STATSPACK默认是LEVEL 5收集,而LEVEL 5收集的数据是不包括执行计划的,因此对于关注SQL性能的情况,至少需要调整到LEVEL 6,下面是检查和调整STATSPACK收集等级的方法,比较简单,就不多解释了: SQL> EXEC statspack.snap PL/SQL PROCEDURE successfully completed. SQL> SELECT snap_id, dbid, snap_level FROM stats$snapshot; SNAP_ID DBID SNAP_LEVEL ———- ———- ———- 1 1258229964 5 1 ROW selected. SQL> EXEC statspack.snap(i_snap_level => 6) PL/SQL PROCEDURE successfully completed. … Continue reading

Posted in ORACLE | Tagged , , , , | Leave a comment

STATSPACK报告REDO SIZE出现负值

客户9.2.0.8数据库的STATSPACK报告出现负的REDO SIZE。 类似信息如下: LOAD Profile ~~~~~~~~~~~~ Per SECOND Per TRANSACTION ————— ————— Redo SIZE: -263,339.94 -685,483.59Load Profile ~~~~~~~~~~~~ Per Second Per Transaction ————— ————— Redo size: -263,339.94 -685,483.59 其实经常出现的还包括逻辑读以及物理读等。其实不查询MOS也可以确定,这是Oracle的bug,而导致bug的原因应该是底层的C代码中没有使用UNSIGNED类型,以至于变量溢出后出现了负值。 在MOS中的对应描述为:Redo Size Negative In Statspack Report [ID 308414.1],Oracle在10g中解决了这个问题。确认影响版本从8.1.7.4到9.2.0.8。

Posted in BUG | Tagged , , | Leave a comment

STATSPACK数据清除(三)

Oracle文档推荐的STATSPACK过期数据产生的方法是直接删除STATS$SNAPSHOT表中的记录。 这篇文章说明第一篇文章中没有描述清楚的数据清除问题。 STATSPACK数据清除(一):http://yangtingkun.itpub.net/post/468/466248 STATSPACK数据清除(二):http://yangtingkun.itpub.net/post/468/466514 之所以隔了3年才有这篇文章,完全是野花的缘故。野花前一段在折腾STATSPACK是发现了我的文章,并且对于我之前没有得出结论的数据清除问题做出了解答,之所以删除STATS$SNAPSHOT就会导致其他表的数据自动删除,并非是Oracle的什么内部机制,其实道理很简单,就是Oracle建立的是CASCADE ON DELETE约束条件。 看来自己在开发方面还是外行,一直没有想到这个问题,于是特意找到了一个9i上部署STATSPACK的数据库,验证一下: SQL> SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS, DELETE_RULE 2 FROM DBA_CONSTRAINTS 3 WHERE TABLE_NAME = ‘STATS$SNAPSHOT’ 4 AND OWNER = ‘PERFSTAT’ 5 AND CONSTRAINT_TYPE = ‘P’; CONSTRAINT_NAME C STATUS DELETE_RU —————————— – ——– ——— … Continue reading

Posted in ORACLE | Tagged , | Leave a comment