ITPub博客

首页 > Linux操作系统 > Linux操作系统 > STATSPACK数据清除(三)

STATSPACK数据清除(三)

原创 Linux操作系统 作者:yangtingkun 时间:2011-12-10 23:58:56 0 删除 编辑

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 WNER = 'PERFSTAT'  
  5  AND CONSTRAINT_TYPE = 'P';

CONSTRAINT_NAME                C STATUS   DELETE_RU
------------------------------ - -------- ---------
STATS$SNAPSHOT_PK              P ENABLED

SQL> SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, STATUS, DELETE_RULE
  2  FROM DBA_CONSTRAINTS
  3  WHERE WNER = 'PERFSTAT'  
  4  AND CONSTRAINT_TYPE = 'R'
  5  AND R_CONSTRAINT_NAME = 'STATS$SNAPSHOT_PK';

CONSTRAINT_NAME                C STATUS   DELETE_RU
------------------------------ - -------- ---------
STATS$BG_EVENT_SUMMARY_FK      R ENABLED  CASCADE
STATS$BUFFER_POOL_STATS_FK     R ENABLED  CASCADE
STATS$DB_CACHE_ADVICE_FK       R ENABLED  CASCADE
STATS$DLM_MISC_FK              R ENABLED  CASCADE
STATS$ENQUEUE_STAT_FK          R ENABLED  CASCADE
STATS$FILESTATXS_FK            R ENABLED  CASCADE
STATS$INSTANCE_RECOVERY_FK     R ENABLED  CASCADE
STATS$LATCH_CHILDREN_FK        R ENABLED  CASCADE
STATS$LATCH_FK                 R ENABLED  CASCADE
STATS$LATCH_MISSES_SUMMARY_FK  R ENABLED  CASCADE
STATS$LATCH_PARENT_FK          R ENABLED  CASCADE
STATS$LIBRARYCACHE_FK          R ENABLED  CASCADE
STATS$PARAMETER_FK             R ENABLED  CASCADE
STATS$PGA_TARGET_ADVICE_FK     R ENABLED  CASCADE
STATS$RESOURCE_LIMIT_FK        R ENABLED  CASCADE
STATS$ROLLSTAT_FK              R ENABLED  CASCADE
STATS$ROWCACHE_SUMMARY_FK      R ENABLED  CASCADE
STATS$SEG_STAT_FK              R ENABLED  CASCADE
STATS$SESSION_EVENT_FK         R ENABLED  CASCADE
STATS$SESSTAT_FK               R ENABLED  CASCADE
STATS$SGASTAT_FK               R ENABLED  CASCADE
STATS$SGA_FK                   R ENABLED  CASCADE
STATS$SHARED_POOL_ADVICE_FK    R ENABLED  CASCADE
STATS$SQL_PGASTAT_FK           R ENABLED  CASCADE
STATS$SQL_PLAN_USAGE_FK        R ENABLED  CASCADE
STATS$SQL_STATISTICS_FK        R ENABLED  CASCADE
STATS$SQL_SUMMARY_FK           R ENABLED  CASCADE
STATS$SQL_WORKAREA_HIST_FK     R ENABLED  CASCADE
STATS$SYSSTAT_FK               R ENABLED  CASCADE
STATS$SYSTEM_EVENT_FK          R ENABLED  CASCADE
STATS$TEMPSTATXS_FK            R ENABLED  CASCADE
STATS$WAITSTAT_FK              R ENABLED  CASCADE

32 rows selected.

显然之所以删除STATS$SNAPSHOT表会导致STATSPACK整体数据被清除,是因为所有的外键都设置了CASCADE ON DELETE。这也是第二篇文章中描述的那些不含SNAP_ID的表没有自动清除的原因。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-713109/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11076238