打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Statspack之八-删除历史数据
删除stats$snapshot数据表中的相应数据,其他表中的数据会相应的级连删除:
SQL> select max(snap_id) from stats$snapshot;
MAX(SNAP_ID)
------------
166
SQL> delete from stats$snapshot where snap_id < = 166;
143 rows deleted
你可以更改snap_id的范围以保留你需要的数据。
在以上删除过程中,你可以看到所有相关的表都被锁定。
SQL> select a.object_id,a.oracle_username ,b.object_name
from v$locked_object a,dba_objects b
where a.object_id = b.object_id
/
OBJECT_ID ORACLE_USERNAMEOBJECT_NAME
------------------------------------- ---------------------------------------------------------
156 PERFSTATSNAP$
39700 PERFSTATSTATS$LIBRARYCACHE
39706 PERFSTATSTATS$ROLLSTAT
39712 PERFSTATSTATS$SGA
39754 PERFSTATSTATS$PARAMETER
39745 PERFSTATSTATS$SQL_STATISTICS
39739 PERFSTATSTATS$SQL_SUMMARY
39736 PERFSTATSTATS$ENQUEUESTAT
39733 PERFSTATSTATS$WAITSTAT
39730 PERFSTATSTATS$BG_EVENT_SUMMARY
39724 PERFSTATSTATS$SYSTEM_EVENT
39718 PERFSTATSTATS$SYSSTAT
39715 PERFSTATSTATS$SGASTAT
39709 PERFSTATSTATS$ROWCACHE_SUMMARY
39703 PERFSTATSTATS$BUFFER_POOL_STATISTICS
39697 PERFSTATSTATS$LATCH_MISSES_SUMMARY
39679 PERFSTATSTATS$SNAPSHOT
39682 PERFSTATSTATS$FILESTATXS
39688 PERFSTATSTATS$LATCH
174 PERFSTATJOB$
20 rows selected
Oracle还提供了系统脚本用于Truncate这些统计信息表,这个脚本名字是: sptrunc.sql (8i、9i都相同)
该脚本主要内容如下,里面看到的就是statspack相关的所有系统表:
truncate table STATS$FILESTATXS;
truncate table STATS$LATCH;
truncate table STATS$LATCH_CHILDREN;
truncate table STATS$LATCH_MISSES_SUMMARY;
truncate table STATS$LATCH_PARENT;
truncate table STATS$LIBRARYCACHE;
truncate table STATS$BUFFER_POOL_STATISTICS;
truncate table STATS$ROLLSTAT;
truncate table STATS$ROWCACHE_SUMMARY;
truncate table STATS$SGA;
truncate table STATS$SGASTAT;
truncate table STATS$SYSSTAT;
truncate table STATS$SESSTAT;
truncate table STATS$SYSTEM_EVENT;
truncate table STATS$SESSION_EVENT;
truncate table STATS$BG_EVENT_SUMMARY;
truncate table STATS$WAITSTAT;
truncate table STATS$ENQUEUESTAT;
truncate table STATS$SQL_SUMMARY;
truncate table STATS$SQL_STATISTICS;
truncate table STATS$SQLTEXT;
truncate table STATS$PARAMETER;
delete from STATS$SNAPSHOT;
delete from STATS$DATABASE_INSTANCE;
commit;
如果采样了大量的数据,直接Delete是非常缓慢的,可以考虑使用上述SQL截断所有表。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle Tuning (Oracle 性能调整)的一些总结
增加Distinct后查询效率反而提高
收集oracle统计信息
Oracle统计信息中的Pending Statistics
明理知意:复合索引优化及索引访问原理
如何批量删除ecshop所有订单和评论
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服