|
|
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
Мне еще не доводилось создавать в Oracle джобы, но вот пришлось заняться задачей, где они предполагаются. И сразу возник вопрос: - А можно-ли назначить задание примерно в такой формулировке: "Выполни [эту] хранимую процедуру, когда будешь не сильно занят, но к такому-то числу, во столько-то часов результат уже должен быть готов". (небольшая просрочка в моем случае допускается - будем указывать время готовности с запасом). Есть-ли что-то уже готовое на эту тему, или мне придется писать свой механизм сбора статистики загруженности сервера в определенные дни и часы, самому учитывать статистику выполнения указанной процедуры, смотреть какие еще задания назначены и на какое время, чтобы не запуститься одновременно с ними, или все-таки разрешить запуститься одновременно, если конкурирующие - не очень ресурсоемкие задачи. (т.е. - нужно иметь статистику их выполнения и оценивать ее). Так же учитывать приоритеты по рабочим/не рабочим часам и дням недели. Если свободно ночное время на сервере - то лучше выполнить ночью, чем днем. Если свободно время в выходной день - то лучше выполнить в выходной. --- Э... пока писал, подумалось, что это вряд-ли есть в Oracle. Тогда, если не трудно - подскажите, пожалуйста, какие инструменты сбора статистики загруженности сервера мне нужно будет использовать при написании такого хитрого планировщика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 18:49 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
А что под нагрузкой понимать? Кол-во запросов выполняемых в определенный момент времени или что-то другое - процессор, дисковая система или все в комплексе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 18:56 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
Sheriffua, Думаю, это комплексная оценка по CPU и дисковым операциям. Смысл такого "smart lazy sheduling" в том, чтобы при автоматической подготовке отчета к нужной дате, не создавать тормоза в рабочее время на базе - чтобы сотрудники и клиенты не жаловались, что все тормозит и висит. Можно просто ночью делать, но "ночью поработать" - таких желающих тоже полно, и получается, что" то густо то пусто". То одновременно запустятся несколько тяжелых процедур, то ничего не делает сервер. Как-то распределять задачи более равномерно, и делать это не вручную, а автоматически. --- Можно было-бы делать отчеты на копии базы, но выбить ресурс для ее создания пока не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 19:17 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
ART-CODE, В разве нельзя в вашем случае использовать профили, в которых задавать нагрузку для ваших задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 19:31 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
ART-CODE, [оставляя за скобками разумность постановки задачи автоматизации такого рода] смотрите в сторону v$active_session_history и агрегата по нему за посление N секунд. например, раз в минуту. и, если всё устраивает, запускайте свой джоб. и даже если нагрузка вдруг сильно возрастёт, вы, воспользовавшись той же вьюхой, сможете прибить свой джоб. или прямо в джобе разбить объём работы на мелкие кусочки и перед началом каждого справляться о нагрузке за последнее время. по результатам - выполнить очередную порцию работы или dbms_lock.sleep на какое-то время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 19:36 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
По честноку: Managing Resources with Oracle Database Resource Manager + Oracle Scheduler Concepts (time window) Но, 1) если у Вас не exadata - управлять загрузкой ввода/вывода Вы не сможете, только CPU 2) Если задача не влезает в windows, то нужно будет предусмотреть chain job, чтобы как-то обработать эту ситуацию, например стукнуть админу, или поднять ее приоритет 3) отчетные, или не требующие online данных задачи, лучше выносить на standby/clone/snapshot database ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 19:58 |
|
||
|
11g - job - выполнить, когда сервер будет не сильно загружен.
|
|||
|---|---|---|---|
|
#18+
trace.logART-CODE, В разве нельзя в вашем случае использовать профили, в которых задавать нагрузку для ваших задач. oracle profile - это quota, грубо - сожрал ресурс, тебя пристрелили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2017, 20:00 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39508121&tid=1885397]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 479ms |

| 0 / 0 |
