|
|
|
Параллельные запросы
|
|||
|---|---|---|---|
|
#18+
Помогите прояснить следующее: Имеется две трассировки 10053, уровень 12, БД 11.2.0.4 В первой есть такое: *************************************** PARAMETERS USED BY THE OPTIMIZER ******************************** ************************************* PARAMETERS WITH ALTERED VALUES ****************************** Compilation Environment Dump ------------------------ parallel_autodop = 1 В второй есть такое: PARAMETERS USED BY THE OPTIMIZER ******************************** ************************************* PARAMETERS WITH ALTERED VALUES ****************************** parallel_hinted = serial Запросы одинаковые, вида: запросX union запросY union запросQ и т.д с одной лишь разницей, что во втором случае два запроса(допустим запросF и запросH) имеют хинт /*+ noparallel*/. В первом случае имеем «параллельный» во втором «последовательный» план. Вопрос: 1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/? 2. Что это за параметры: parallel_hinted и parallel_autodop? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 09:53 |
|
||
|
Параллельные запросы
|
|||
|---|---|---|---|
|
#18+
Kamael, >> 1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/? нет, хинт /*+ noparallel*/ в любой части запроса обычно отключает параллельное выполнение на уровне всего запроса, и вы видите в трейсе изменение параметра для всего запроса: Код: plsql 1. 2. 3. 4. , который собственно и отражает степень хинтованности запроса в части параллельного выполнения параметр parallel_autodop имхо логически (1/0) отражает использование autodop в запросе, смотрите секцию Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 14:38 |
|
||
|
Параллельные запросы
|
|||
|---|---|---|---|
|
#18+
usolcewKamael, >> 1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/? нет, хинт /*+ noparallel*/ в любой части запроса обычно отключает параллельное выполнение на уровне всего запроса, и вы видите в трейсе изменение параметра для всего запроса: Код: plsql 1. 2. 3. 4. , который собственно и отражает степень хинтованности запроса в части параллельного выполнения параметр parallel_autodop имхо логически (1/0) отражает использование autodop в запросе, смотрите секцию Код: plsql 1. 2. 3. Да, всё оно так, и в секции Automatic degree of parallelism (AUTODOP) указан disable. Это поведение где-то описано, или по крупицам искать/тестировать? Вот ещё вопрос про параллеьность, кусок трейса _px_trace: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 14:47 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39304226&tid=1886878]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 491ms |

| 0 / 0 |
