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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- STATSPACK資料清除(二)
- STATSPACK資料清除(一)
- STATSPACK清除資料時沒有刪除STATS$UNDOSTAT
- Statspack之三-安裝statspack
- 大量STATSPACK資料統計分析
- mysql 清除重複資料MySql
- Statspack之八-刪除歷史資料
- 清除閃回資料歸檔區資料
- 如何清除 Elasticsearch 中的資料Elasticsearch
- 微信清除快取資料方法快取
- 清除 Nuxt 資料快取:clearNuxtDataUX快取
- 清除ebs12目錄資料
- 清除SQL Server資料庫日誌SQLServer資料庫
- oracle清除資料庫表空間Oracle資料庫
- zabbix清除歷史監控資料
- 清除 Electron 中的快取資料快取
- 【筆記】statspack(三) report分析 摘錄筆記
- 自動刪除過期的statspack統計資料
- 清除快取資料--工具類封裝快取封裝
- Statspack之一-Statspack簡介
- Win10怎麼清除所有資料?Win10電腦清除所有資料的方法和步驟Win10
- oracle實用sql(10)--用statspack收集備庫效能資料OracleSQL
- jQuery清除表單資料程式碼例項jQuery
- rman清除歸檔日誌經典資料
- Android清除本地資料快取程式碼Android快取
- SQL Server 清除資料庫日誌指令碼SQLServer資料庫指令碼
- Statspack初步學和用第三篇 分析初步
- 【STATSPACK】Statspack安裝、測試與使用
- TogetherShare TS DataWiper 資料徹底清除軟體
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- oracle 資料庫徹底清除目錄指令碼Oracle資料庫指令碼
- fragment清除頁面資料(重新載入佈局)Fragment
- 清除使用者下所有的資料(清庫)
- statspack分析
- statspack解析
- 如何清除win10 所有資料_win10怎麼清空所有資料Win10
- Macbook一鍵抹掉系統所有資料教程 Macbook怎麼清除所有資料?Mac
- Oracle9i流環境清除(三)Oracle