Oracle經驗分享:GATHER_STATS_JOB 任務 |
發布時間: 2012/8/11 17:41:22 |
應該有開發測試相關的兄弟常常發現,某些半夜跑的報表系統,在系統開始時候好好的,但是數據量越來越大的情況下,報表系統會越來越慢。 一般我們可以理解為sql需要優化,存儲需要優化等等。 這里,如果我們使用的是Oracle 10G以上版本,就要小心了,有可能是Oracle自己搞的鬼。 Oracle10g增加了一個新的任務,用來自動分析數據庫,已增加CBO執行的正確性。這個任務就是GATHER_STATS_JOB,任務定義周一到周五的半夜執行,和周六日全天執行。 出發點很好,但是,大部分業務晚上常常也要跑大的查詢,或者執行計劃改變,會引起新的性能問題。這個都是可以預見的。 下面備忘。 查看任務詳情: SELECT owner,job_name,state,last_start_date,last_run_duration,failure_count FROM dba_scheduler_jobs WHERE job_name = 'GATHER_STATS_JOB'; select PROGRAM_ACTION from dba_scheduler_programs where PROGRAM_NAME = 'GATHER_STATS_PROG'; 任務執行歷史: SELECT log_id, job_name, status, TO_CHAR (log_date, 'DD-MON-YYYY HH24:MI') log_date FROM dba_scheduler_job_run_details WHERE job_name = 'GATHER_STATS_JOB'; 禁用任務: 在sysdba下執行: exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); 本文出自:億恩科技【www.endtimedelusion.com】 |