Oracle任務排程工具學習
沒想到接觸Oracle任務排程工具是從解決Oracle自動統計功能開始的。
話說從10g開始,cbo便大行其道,oracle更是不遺餘力的在推動這個最佳化器,因為它可以智慧化的生成執行計劃。但是,要實現智慧化,就必須有大量的後臺資料做支撐。這些用來告訴最佳化器如何去生成計劃的資料就是表的統計資訊,包括行數、塊數、基數等各類執行時所需考慮的成本。
但是,這些智慧化所依賴的資訊是不會自然生成的,也不會在表資料的變化的時候自動告訴最佳化器,我的資料變化了,變化了哪些。所以,Oracle要有一個工具按照一定的時間規則去搜集這些資訊。於是便有了Oracle的自動統計功能,其對應的任務名稱為:GATHER_STATS_JOB。
該功能是透過dbms_schedule包來實現的,是對資料庫所有的表資訊進行統計和蒐集。
預設的,在資料庫建立的時候就建立了gather_stats_job,執行dbms_stats.gather_database_stats_job_proc過程,使用schedular。預設的定義了兩個視窗:
weekenight_window定義在下午10點到上午六點.從週一到週五.
weekend_window定義從上午12點到週一12點。
從這樣的情況來看,執行的時間與我係統的一個批處理時間是重合的,兩個在一起處理的時候都會佔用大量的資源,而導致互相爭奪的情況出現。為了錯開兩個處理時間,必須要將其中一個的觸發點延後,我選擇了自動統計,將其延到凌晨三點,此時批處理已經處理完成,所以可以正常蒐集統計資訊了。
要做的事情很簡單,兩個步驟:
1、取消原有的計劃模式
call dbms_scheduler.set_attribute('GATHER_STATS_JOB', 'SCHEDULE_NAME', '');
2、啟用新的排程模式(每天凌晨三點開始執行)
call dbms_scheduler.set_attribute('GATHER_STATS_JOB', 'REPEAT_INTERVAL', 'FREQ=DAILY;BYHOUR=3');
如果需要改為每週執行一次(以下表示在每個星期六的晚上10點執行該計劃),則可以如下:
call dbms_scheduler.set_attribute('GATHER_STATS_JOB', 'REPEAT_INTERVAL', 'FREQ=WEEKLY;BYDAY=SAT;BYHOUR=22');
3、如果該排程沒有啟用,則可以按如下命令啟用:
call dbms_scheduler.enable('GATHER_STATS_JOB');
4、如果需要停止正在執行的中的排程,則可以:
begin dbms_scheduler.stop_job('GATHER_STATS_JOB',true); end;
參考網頁:
http://space.itpub.net/7301064/viewspace-468575
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-717869/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 任務排程
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- Airflow 任務排程AI
- Laravel 任務排程Laravel
- 分散式任務排程分散式
- Spring 指南(排程任務)Spring
- Spark中資源排程和任務排程Spark
- 聊聊PowerJob的任務排程
- 分散式排程任務-ElasticJob分散式AST
- Linux 定時任務排程Linux
- LeetCode 621 任務排程器LeetCode
- Timer和TimerTask 任務排程
- laravel框架任務排程(定時執行任務)Laravel框架
- Python任務排程模組APSchedulerPython
- LTS分散式任務排程部署分散式
- LiteOS-任務篇-原始碼分析-任務排程函式原始碼函式
- 力扣-621. 任務排程器力扣
- Flink - Task 任務排程執行流程
- 621. 任務排程器 (構造)
- 力扣 621. 任務排程器力扣
- 任務排程框架Quartz快速入門!框架quartz
- Spring排程定時任務的方式Spring
- Android 中的定時任務排程Android
- 任務排程的思考和總結
- xxl-job,任務排程中心快速上手
- 使用Java實現定時任務排程Java
- Linux 中 Laravel 任務排程不執行LinuxLaravel
- 真香!SpringBoot官方支援任務排程框架了!Spring Boot框架
- Aloha:一個分散式任務排程框架分散式框架
- 中介軟體---分散式任務排程---Celery分散式
- 任務排程的並行演算法並行演算法
- 基於Hyperf開發的任務排程系統.支援任務投遞,DAG任務編排(多個任務使用同一個事務).
- 新一代分散式任務排程框架分散式框架
- 一文詳解 Linux Crontab 排程任務Linux
- 海豚排程任務型別Apache SeaTunnel部署指南型別Apache
- 詳解BI系統中的任務排程
- 分散式任務排程平臺XXL-JOB分散式
- celery 與 flask 實現非同步任務排程Flask非同步
- 【LeetCode】每日一題621. 任務排程器LeetCode每日一題