表分析
-
--下面的語句既可以用於上線前的髒資料分析:上線之前將產生的垃圾資料刪除,然後執行下面的語句,收集完後再檢視 dba_tables 中 NUM_ROWS 欄位中
-
--是否有大於0的表,根據這個欄位來分析是否還有髒資料沒有清除乾淨
-
--也能用於上線後的資料分析
-
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||') ;' FROM dba_tables a WHERE a.owner='ZLHIS' ;
-
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
- FROM dba_tables a WHERE a.owner='ZLHIS' ;
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||') ;' FROM dba_tables a WHERE a.owner='ZLTOOLS' ;
-
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
- FROM dba_tables a WHERE a.owner='ZLTOOLS' ;
-
SELECT 'exec dbms_stats.gather_table_stats('||''''||a.owner||''''||','||''''||a.table_name||''''||','||'cascade=>true'||') ;'
-
SELECT 'exec dbms_stats.gather_index_stats('||''''||a.owner||''''||','||''''||a.index_name||''''||') ;' FROM dba_indexes a WHERE a.owner='ZLHIS' ;
-
-
SELECT 'exec dbms_stats.gather_index_stats('||''''||a.owner||''''||','||''''||a.index_name||''''||') ;' FROM dba_indexes a WHERE a.owner='ZLTOOLS' ;
-
-
--也可按照以下的語句直接進行分析
-
SELECT 'ANALYZE TABLE '||A.owner||'.'||A.table_name||' COMPUTE STATISTICS ;' FROM DBA_tables a WHERE a.owner IN ('ZLHIS','ZLTOOLS') ;
-
SELECT 'ANALYZE INDEX '||A.owner||'.'||A.INDEX_NAME||' COMPUTE STATISTICS ;' FROM DBA_INDEXES a WHERE a.owner IN ('ZLHIS','ZLTOOLS') ;
-
--刪除統計分析的資料
-
ANALYZE TABLE TableName DELETE STATISTICS ;
-
ANALYZE INDEX IndexName DELETE STATISTICS ;
-
-
--查詢表是否分析過
-
SELECT A.LAST_ANALYZED, A.TABLE_NAME, A.NUM_ROWS, A.SAMPLE_SIZE
-
FROM DBA_TABLES A
-
WHERE OWNER IN ('ZLHIS','ZLTOOLS')
-
ORDER BY A.LAST_ANALYZED DESC ;
-
-
--檢視自動收集統計資訊的任務
-
--查詢的列值auto optimizer stats collection為enabled即代表自動收集任務
-
SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT ;
-
-
----以下為收集表資訊、索引資訊等的語法
-
–收集資料庫資訊
-
EXEC DBMS_STATS.gather_database_stats;
-
EXEC DBMS_STATS.gather_database_stats(estimate_percent => 15);
-
-
–收集schema資訊
-
EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’);
-
EXEC DBMS_STATS.gather_schema_stats(‘SCOTT’, estimate_percent => 15);
-
-
–收集表資訊
-
EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’);
-
EXEC DBMS_STATS.gather_table_stats(‘SCOTT’, ‘EMPLOYEES’, estimate_percent => 15);
-
-
–收集index資訊
-
EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);
-
EXEC DBMS_STATS.gather_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’, estimate_percent => 15);
-
-
–刪除收集資訊
-
EXEC DBMS_STATS.delete_database_stats;
-
EXEC DBMS_STATS.delete_schema_stats(‘SCOTT’);
-
EXEC DBMS_STATS.delete_table_stats(‘SCOTT’, ‘EMPLOYEES’);
-
EXEC DBMS_STATS.delete_index_stats(‘SCOTT’, ‘EMPLOYEES_PK’);
-
-
–建立備份收集資訊表
-
begin
-
dbms_stats.create_stat_table(USER,stattab => ‘STAT_TABLE’);
-
end;
-
-
–備份收集資訊
-
BEGIN
-
dbms_stats.export_table_stats(USER,tabname => ‘FEI_T’,stattab => ‘STAT_TABLE’);
-
END;
-
-
–刪除收集資訊
-
BEGIN
-
DBMS_STATS.delete_table_stats(USER,tabname => ‘FEI_T’);
-
END;
-
-
–匯入收集資訊
-
BEGIN
-
dbms_stats.IMPORT_TABLE_STATS(USER,’FEI_T’,stattab => ‘STAT_TABLE’);
-
END;
-
-
–說明:
-
當前使用者可以使用user代替使用者名稱
-
分析表相關物件資訊cascade => true
-
-
--啟用自動收集統計資訊的任務
-
BEGIN
-
DBMS_AUTO_TASK_ADMIN.ENABLE(
-
client_name => 'auto optimizer stats collection',
-
operation => NULL,
-
window_name => NULL);
-
END;
-
-
--禁用自動收集統計資訊的任務
-
BEGIN
-
DBMS_AUTO_TASK_ADMIN.DISABLE(
-
client_name => 'auto optimizer stats collection',
-
operation => NULL,
-
window_name => NULL);
- END
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28878983/viewspace-2133927/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 表分析Oracle
- 特殊表分析
- MySQL優化表和分析表MySql優化
- 分析表時遇到BUG
- oracle 表分析和索引Oracle索引
- 財務報表分析
- DBMS_STATS分析表
- 不讓oracle分析表Oracle
- 庫存分析報表
- 表分析初體驗
- 如何分析損益表
- 對大表的分析
- Analyze分析表或者索引索引
- 財務報表分析是在分析什麼?如何選擇財務報表分析工具
- DBMS_STATS分析表與備份分析資訊
- PE節表詳細分析
- openflow流表分析(草稿)
- SAP存貨分析報表
- oracle的表分析語句Oracle
- 如何分析資產負債表
- Oralce中分析表及索引索引
- oracle 定期表及索引分析Oracle索引
- 分析表的crontab指令碼指令碼
- 抓取全表掃描的表,篩選和分析
- 如何分析報表效能問題
- 定期最佳化和分析表
- 分析表空間空閒率並收縮表空間
- 資料分析報表怎麼做
- 簡單的招聘資訊圖表分析
- MySQL修復表的簡單分析MySql
- 線性表分析及Java實現Java
- Oracle 閃回刪除表原理分析Oracle
- 字母表;及查詢提示分析
- 樹的高度;及字母表分析
- [總結] Oracle表的分析統計Oracle
- Oracle 表連線方式分析(精讀)Oracle
- 表熱塊的處理手段分析
- ORACLE分析表和索引的指令碼Oracle索引指令碼