|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Здравствуйте! Столкнулся со следующей проблемой: если добавить новый столбец в таблицу, то при выполнении команды merge - запрос зависает. Я уже неоднократно сталкивался с этой проблемой. Помогает только ребилд таблицы, которая подвергается обновлению! Версия Oracle: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production Вот запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Из особенностей запроса скажу следующее: 1) в merge используется DBlink; 2) в запросе задействуется довольно много столбцов; Благодарю за помощь в решении данной проблемы! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 10:06 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
slawentiy777, Покажите планы выполнения команды MERGE 1) До ребилда таблицы (всё плохо) 2) После ребилда таблицы (всё хорошо) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 11:27 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Благодарю, что отозвались! Высылаю скрин плана ДО и ПОСЛЕ ребилда таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 16:35 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Попробуйте вернуть на родину посредством хинта DRIVING_SITE ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:38 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Я вставил DRIVING_SITE в подзапрос, который извлекает данные с удалённого сервера, но ничего не изменилось. А вообще разве можно использовать этот хинт в merge? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 13:21 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Хинт driving_site не поможет, поскольку driving site локальный в обоих случаях. Если хочешь разобраться, то надо посмотреть SQL monitor отчёты обоих случаев, ну или как минимум медленного, оба плана выполнения в читаемом виде, чтобы было видно что посылается в remote, проверить план выполнения на удалённой стороне. Если надо чтобы заработало и забыть, то можешь попробовать запустить merge с outline из хорошего плана, и если надо, то закрепить его профайлом как описано в Doc ID 1400903.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 13:53 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
slawentiy777, вам надо хинт leading. А вообще показывайте планы лучше через dbms_xplan с advanced ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 13:59 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Благодарю за ответы, но ничего не помогает. Вот план запроса, который ЗАВИСАЕТ (я получил через DBMS_XPLAN.DISPLAY): Код: 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.
Вот план запроса, который работает ОТЛИЧНО (я получил через DBMS_XPLAN.DISPLAY): Код: 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.
По-моему, никакой особой разницы нет, даже "Plan hash value" одинаковый. В общем, господа, единственный выход из сложившейся ситуации - ребилд таблицы после добавления новых столбцов в таблицу! Кстати, в Oracle XE 18 всё работает нормально, похоже, что это глюк Oracle XE 11... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 22:30 |
|
Зависает merge после добавления столбца в таблицу
|
|||
---|---|---|---|
#18+
Чего такое " ребилд таблицы "? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 15:12 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1881286]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 282ms |
0 / 0 |