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 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博客 ” ,链接:http://blog.itpub.net/4227/viewspace-713109/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-713109/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值