Содержание
- 2. Введение СУБД Oracle — большой и сложный механизм, требующий выполнения определенных плановых работ, таких как сбор
- 3. Основные понятия планировщика Schedule (расписание) Program (программа) Job (плановое задание = расписание + программа) Chain (последовательность
- 4. Объекты словаря данных таблицы словаря LIKE '%SCHEDULER_%‘: DBA_SCHEDULER_JOBS DBA_SCHEDULER_JOB_LOG USER_SCHEDULER_PROGRAMS USER_SCHEDULER_SCHEDULES и прочие
- 5. Системные привилегии CREATE SESSION CREATE JOB CREATE ANY JOB EXECUTE ANY PROGRAM EXECUTE ANY CLASS MANAGE
- 6. Объектные привилегии объектные привилегии: EXECUTE ALTER распространяющиеся на объекты типов JOB, SCHEDULE, PROGRAM ; пакет DBMS_SCHEDULER.
- 7. Типы заданий (и программ) PL/SQL – процедура (STORED_PROCEDURE) PL/SQL - блок (PLSQL_BLOCK) external OS-program (EXECUTABLE)
- 8. Пример (простое задание с PLSQL блоком) BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'simple_job', job_type => 'PLSQL_BLOCK', job_action
- 9. Пример (простое задание с вызовом хранимой процедуры) CREATE PROCEDURE updatesal AS BEGIN UPDATE emp SET sal
- 10. Пример (задание с внешним вызовом) BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'simple_job', job_type => 'EXECUTABLE', job_action =>
- 11. Возможности для указания запуска заданий Следующие параметры процедуры CREATE_JOB: start_date => SYSTIMESTAMP + INTERVAL '10' SECOND
- 12. Примеры (использование языка для запуска заданий) FREQ=HOURLY;INTERVAL=4 каждые 4 часа; FREQ=MINUTELY;INTERVAL=5 каждые 5 минут FREQ=SECONDLY;INTERVAL=1 каждую
- 13. Как проверить правильность составленного выражения? DECLARE next_run_date TIMESTAMP; BEGIN DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING ( 'FREQ=MINUTELY;INTERVAL=4', SYSTIMESTAMP, NULL, next_run_date )
- 14. Информация о заданиях Если указать план запуска, задание появится в словаре уже надолго. Удалить его при
- 15. Упражнение Создайте задание, которое в течение 10 минут ежеминутно (или ежесекундно) увеличивает комиссионные (в таблице EMP)
- 16. Скомпонованное задание Более развитая возможность DBMS_SCHEDULER позволяет скомпоновать задание из независимых элементов: программы (или последовательность программ)
- 17. Пример (создание программы) BEGIN DBMS_SCHEDULER.CREATE_PROGRAM ( program_name => 'simple_program', program_type => 'STORED_PROCEDURE' , program_action => 'updatesal',
- 18. Примечания Информация об имеющихся программах для планировщика присутствует в представлениях: DBA/ALL/USER_SCHEDULER_PROGRAMS Другими значениями параметра PROGRAM_TYPE могут
- 19. Пример (процедуры с параметрами) CREATE PROCEDURE salary ( deer NUMBER ) AS BEGIN UPDATE emp SET
- 20. Пример(уточнение фактических параметров вызова программы) BEGIN DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT ( program_name => 'simple_program1', argument_position => 1, argument_name =>
- 21. Пример(уточнение фактических параметров вызова программы) BEGIN DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT ( program_name => 'simple_program1', argument_position => 1, argument_name =>
- 22. Пример (создание расписания) BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE ( schedule_name => 'simple_schedule', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=WEEKLY; BYDAY=MON,
- 23. Информация о расписаниях Информация об имеющихся расписаниях для планировщика находится в представлениях словаря: DBA/ALL/USER_SCHEDULER_SCHEDULES
- 24. Пример (скомпонованное задание для программы без параметров) BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'compound_job', program_name => 'simple_program',
- 25. Пример (скомпонованное задание для программы с параметрами) BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'compound_job1', program_name => 'simple_program1',
- 27. Скачать презентацию