51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4562|回复: 0
打印 上一主题 下一主题

Statspack之八-删除历史数据

[复制链接]
  • TA的每日心情
    慵懒
    2015-1-8 08:46
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-10-17 14:35:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    删除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截断所有表。
    -----
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 04:08 , Processed in 0.063903 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表