|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
Доброго дня господа ! Имею представление и пакет Код: plsql 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
WITH-ы работают параллельно друг другу, производительность удовлетворяет Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Делаю замену константной переменной в With-е PARAMETER на функцию пакета PARAMETERS (перед выполнением представления буду присваивать дату отчета из вне представления PARAMETERS.Refresh(To_Date('17-03-2020','DD/MM/YYYY')) ) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Как только такая замена происходит меняется план запроса - парал-ция отключается Как устранить этот момент. Спасибо ! P.S. - Pipelined Table Functions не предлагать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 13:39 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X Доброго дня господа ! Имею представление и пакет Код: plsql 1. 2.
дoкaparallel_enable_clause The parallel_enable_clause can appear only once in the function. The function must not use session state, such as package variables, because those variables are not necessarily shared among the parallel execution servers. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 13:55 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, используй лучше sys_context ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 13:59 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
SY HOME_X Доброго дня господа ! Имею представление и пакет Код: plsql 1. 2.
дoкaparallel_enable_clause The parallel_enable_clause can appear only once in the function. The function must not use session state, such as package variables, because those variables are not necessarily shared among the parallel execution servers. SY. Принято - спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:42 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
xtender HOME_X, используй лучше sys_context Creating an Application Context: Example This example uses the PL/SQL package emp_mgmt, created in "Creating a Package: Example", which validates and secures the hr application. The following statement creates the context namespace hr_context and associates it with the package emp_mgmt: CREATE CONTEXT hr_context USING emp_mgmt; Вероятнее всего что результат будет аналогичен ... попробую... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:44 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
xtender HOME_X, используй лучше sys_context и типовые переменные привязать нельзя, только текст Верно понимаю ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 15:46 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X Creating an Application Context: Example ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 16:14 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2020, 17:49 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
xtender, Относительно context - спасибо ! Возник вопрос по такому предложению парал-ция опять таки отключается Замена константы на подзапрос к однострочной таблице Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2020, 14:46 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X xtender, Относительно context - спасибо ! Возник вопрос по такому предложению парал-ция опять таки отключается Замена константы на подзапрос к однострочной таблице Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Спасибо Вопрос снят Create table T1 () parallel ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2020, 15:06 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, Не ясно - вынес первоначальную константу в пользовательскую функцию Паралл-ция представления в плане оптимизации снова отключилась Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Поясните причину Что не так понимаю ? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2020, 19:31 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, Добавлю - если вернуть НЕ дату (Number или String) - PX COORDINATOR включается Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Дату задавал разнообразно return To_date('','') return Sysdate return Cast(... as date) return Date '2020-03-17' С чем это может быть связано ? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 12:28 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, сейчас ты вообще не в ту сторону смотришь... Дело не в ограничениях функции, а в том как CBO строит план - очевидно, что он просто считает параллель не выгодной в определенных случаях. Делай 10053 и сравнивай ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 13:45 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
xtender, Не совсем Вас понял Во всех случаях общая архитектура запроса неизменна - первоначальном случае возвращал дату - PX - COORDNTATOR не работал - последнем случае вернул стринг и привел к дате - PX - COORDNTATOR сработал Для "развязки" по PL/SQL создана временная таблицы (Materialize) - Но остальные конструкции без концептуальных изменений "Делай 10053 и сравнивай" - имеете в виду context ? Пока не имею привилегий на создание cnotext переменных, поговорю с админами там буду смотреть что получиться Спасибо за уделенное время ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 15:29 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
HOME_X, меняя функцию ты меняешь предикаты, меняются предикаты - меняется стоимость и, соответственно, план строится по-другому. Оптимизатор сам выбирает, выгоднее ли параллельный план, поэтому получай трассировку 10053 и сравнивай. На самом деле, мне бы хватило обычных эксплейнов с хинтами parallel, но тебе лучше смотреть и показывать именно трассировку ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 15:40 |
|
Параллельное выполнение и пакетная функция
|
|||
---|---|---|---|
#18+
xtender HOME_X, , поэтому получай трассировку 10053 и сравнивай Принято - попробую востребовать (не админ базы к сожалению) Текущее решение Добавил в пакет функцию которая возвращает String Код: plsql 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. 49. 50. 51.
Запрос отработал параллельно, не смотря на использование пакетных переменных (pDrep) Эти переменные заполнены единоразово и на протяжении сессии не меняют значение Т.е. замечание не критично Код: plsql 1. 2. 3.
Еще раз спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2020, 17:24 |
|
|
start [/forum/topic.php?fid=52&fpage=50&tid=1881437]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 299ms |
total: | 464ms |
0 / 0 |