|
|
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
ORACLE 11.2 есть необходимость организовать периодическое асинхронное выполнение набора процедур, например: 1) запускается процедура 1, время работы около 7 минут 2) не дожидаясь завершения процедуры 1 (= т.е. одновременно), запускается процедура 2, время работы - около 5 минут, но возможны вылеты 3) процедура 3 запускается только после завершения обеих процедур - 1 и 2 как это эффективно и красиво организовать встроенными средствами Oracle? если есть ссылки на статью/блог/пример - прошу ткнуть носом в них спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 11:21:20 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
Alexus12, В oracle >= 11 можно реализовать через пакет dbms_parallel_execute ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 11:31:18 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
Alexus12как это эффективно и красиво организовать встроенными средствами Oracle? DBMS_SCHEDULER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 11:41:22 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
pihel, если я правильно понимаю, DBMS_PARALLLEL_EXECUTE - это "автоматически организуемое" параллельное исполнение ОДНОГО SQL или PL/SQL:авторasktom: How to Code for Parallel Processing https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4248554900346593542 Starting with Oracle Database 11g Release 2 and above – we have a new way to implement parallelism via the DBMS_PARALLLEL_EXECUTE builtin package. Using it, you can execute a SQL or PL/SQL statement in parallel by taking the data to be processed and breaking it up into multiple, smaller streams. You can implement the same approach yourself, manually, and I show how in the section on “Old School Do-It-Yourself Parallelism” that follows. The beauty of the new package though, is that it eliminates much of the tedious work that you otherwise need to perform. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 13:52:27 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
Alexus12, параллелить можно не только по rowid, но и создавать параллельные куски самому самостоятельно примерный код для одновременного запуска 2 процедур Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:06:32 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
На мой взгляд, именованные блокировки (DBMS_LOCK) помогут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:06:39 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
dmdmdm, вы имеете в виду стартовать 2 процедуры через шедуллер, внутри сделать lock. А снаружи сделать цикл пока лок не освободится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:13:30 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
а посмотреть в сторону scheduler chains? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:21:01 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
Alexus12ORACLE 11.2 есть необходимость организовать периодическое асинхронное выполнение набора процедур, например: 1) запускается процедура 1, время работы около 7 минут 2) не дожидаясь завершения процедуры 1 (= т.е. одновременно), запускается процедура 2, время работы - около 5 минут, но возможны вылеты 3) процедура 3 запускается только после завершения обеих процедур - 1 и 2 как это эффективно и красиво организовать встроенными средствами Oracle? если есть ссылки на статью/блог/пример - прошу ткнуть носом в них спасибо! Можно через шедулер + global context. В конце каждой из процедур Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:27:55 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
ora601Можно через шедулер + global context. посмотри что требуется ТС и скажи как ? есть готовое решение 19249091 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:36:42 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
123ййora601Можно через шедулер + global context. посмотри что требуется ТС и скажи как ? есть готовое решение 19249091 Ну всё верно, процедуры запускаются шедулером, но для того чтобы обеспечить Alexus123) процедура 3 запускается только после завершения обеих процедур - 1 и 2 нужен global context. Как сделать написано выше в моем посте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:50:16 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
вероятно, DBMS_SCHEDULER chains - лучшее решение пример на русском: http://samag.ru/archive/article/1579 дока на аглицком: https://docs.oracle.com/cd/B28359_01/server.111/b28310/schedover005.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 14:52:09 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
piheldmdmdm, вы имеете в виду стартовать 2 процедуры через шедуллер, внутри сделать lock. А снаружи сделать цикл пока лок не освободится? Да. Ждем в третьей процедуре освобождения блокировки. Как освободилась - значит все, процедуры, использующие эту блокировку, завершили работу. Если блокировка не освободилась за некий период, отвалилась по таймауту, - значит, в процедурах первого этапа какие-то проблемы, надо разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 15:13:22 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
ora601нужен global context. кому он нужен ? по ссылке сходить лень ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 15:44:03 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
Alexus12, Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2016, 15:49:13 |
|
||
|
периодическое асинхронное выполнение набора процедур
|
|||
|---|---|---|---|
|
#18+
123ййAlexus12, Код: plsql 1. 2. 3. 4. это то, что было нужно СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2016, 13:21:47 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39253565&tid=1888122]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 534ms |

| 0 / 0 |
