歡迎您光臨本站 註冊首頁

Oracle經驗分享:GATHER_STATS_JOB 任務

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

 

     應該有開發測試相關的兄弟常常發現,某些半夜跑的報表系統,在系統開始時候好好的,但是數據量越來越大的情況下,報表系統會越來越慢。

  一般我們可以理解為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');



[火星人 ] Oracle經驗分享:GATHER_STATS_JOB 任務已經有700次圍觀

http://coctec.com/docs/linux/show-post-65919.html