oracle統計資訊,oracle統計資訊收集
手工刷ORACLE統計資訊
select count(1) from LOG_TRX_DETAIL;
select * from user_tab_statistics where table_name = 'LOG_TRX_DETAIL';
exec dbms_stats.gather_table_stats('ARDB','ACCT_BALANCE',cascade => true);
exec dbms_stats.gather_table_stats('ARDB','LOG_TRX',cascade => true);
exec dbms_stats.gather_table_stats(OWNNAME=>'ARDB',TABNAME=>'LOG_TRX_DETAIL',GRANULARITY=>'ALL',ESTIMATE_PERCENT=>5,DEGREE=>4,CASCADE=>TRUE);
exec dbms_stats.gather_table_stats(OWNNAME=>'ARDB',TABNAME=>'ACCT_BALANCE',GRANULARITY=>'ALL',ESTIMATE_PERCENT=>5,DEGREE=>4,CASCADE=>TRUE);
execute dbms_stats.gather_table_stats(ownname => 'ARDB',tabname => 'TRANS_DETAIL', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE ,method_opt => 'FOR ALL COLUMNS SIZE 1',no_invalidate=>false, DEGREE=>8, cascade => true);
exec dbms_stats.gather_table_stats('ARDB', 'LOG_TRX', 'P201301', granularity => 'PARTITION', DEGREE=>4, cascade => true);
exec dbms_stats.gather_table_stats('ARDB', 'LOG_TRX_DETAIL', 'P201301', granularity => 'PARTITION', DEGREE=>4, cascade => true);
alter system flush shared_pool;
關閉統計資訊更新
begin
DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',
operation => NULL,
window_name => NULL);
end;
/
通過視圖DBA_AUTOTASK_WINDOW_CLIENTS可以查看他們一周七天的執行情況
select * from DBA_AUTOTASK_WINDOW_CLIENTS;
對於oracle 統計資訊簡單問題
48 個遞迴調用
擷取了 24 個資料庫塊
擷取了 91 個約束
0 物理讀取
0 重做日誌
通過 SQL*Net向用戶端發送了 982 個位元組
通過SQL*Net從用戶端接收了 492 個位元組
通過SQL*Net與用戶端有 2 個通訊
0 個記憶體排序
0 磁碟排序
共擷取了6 行資料
oracle中的統計資訊問題
統計資訊需要及時更新才會發揮它的作用,舊的統計資訊不僅無用,而且會導致查詢最佳化工具使用不正確的執行計畫,導致查詢效率很低。建議的做法不是刪除統計資訊,而是及時更新表和索引的統計資訊。