ITPub博客

首页 > 数据库 > 数据库开发技术 > analyze & rebuild table and index 的腳本生成

analyze & rebuild table and index 的腳本生成

原创 数据库开发技术 作者:playwawa 时间:2004-12-22 09:50:17 0 删除 编辑
沒有別的只是想把今天做的枯燥無味工作紀錄下來,可能還是象我一直說的一樣,如果不會就覺得很有挑戰,如果會了經常做了,反而變成了枯燥[@more@]1. 生成腳本 connect user/password SQL> set heading off 用來關閉Heading SQL> spool c:analyzetest1.sql Started spooling to c:analyzetest1.sql SQL> select 'analyze table '|table_name||' compute statistics;' from user_tables; analyze table test compute statistics; SQL> spool off Stopped spooling to c:analyzetest1.sql OR select 'analyze table '||owner||'.'||table_name||' estimate statistics sample 5000 rows;' from dba_tables where owner not in ('SYS','SYSTEM','PERFSTAT'); OR select 'analyze index '||owner||'.'||index_name||' compute statistics;' from dba_indexes where owner not in ('SYS','SYSTEM','PERFSTAT'); 如果妳需要analyze的table 都在一個user kull下面則 owner in ('KULL')就可以了 2.然後就直接執行腳本就可以了 3.index rebuild腳本的生成 connect user/password SQL> set heading off 用來關閉Heading SQL> spool c:rebuildetest1.sql Started spooling to c:rebuildtest1.sql SQL> select 'alter index '||index_name||' rubuild;' from user_indexes; alter index test rubuild; SQL> spool off Stopped spooling to c:rebuildtest1.sql OR select 'ALTER index '||owner||'.'||index_name||' REBUILD;' from dba_indexes where owner not in ('SYS','SYSTEM','PERFSTAT'); 4.以下的 Script 是列出所有沒有做過 analyze 以及 太久沒做 analyze 的 Table. SELECT OWNER,TABLE_NAME, LAST_ANALYZED FROM DBA_TABLES WHERE LAST_ANALYZED IS NULL OR (SYSDATE-LAST_ANALYZED) >14; 5.可使用下列指令,查看index的blevel,若該值超過4則須rebuild index SELECT OWNER,INDEX_NAME,BLEVEL FROM DBA_INDEXES WHERE OWNER='KULL'; 可能以後會補充,而且我寫的只是自己喜歡用的一種方式還有直接用ORACLE PACAGE 做的覺得麻煩所以不想用忘了一句delete analyze的紀錄的sql analyze table test delete statistics;

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

请登录后发表评论 登录
全部评论
  • 博文量
    105
  • 访问量
    1173129