|
|
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
Добрый день всем, Читаю форум давно, пишу первый раз. Надеюсь, помощь будет. В 12с есть новая опция out_of_place => true в dbms_mview.refresh. Работает прекрасно, быстро, online. Одно но: она стирает курсоры, все, из library cache. Ну или почти все. Или делает их как инвалидные. Не понимаю. Это что? Баг, фича, так и должно быть? Версия: 12.1.0.2.0 Кто-нибудь сталкивался? SQL> select 'AAAAA' from dual; 'AAAAA' --------------- AAAAA SQL> select executions from v$sqlstats where sql_id='bvj89m357jzpp'; EXECUTIONS ---------- 1 SQL> begin dbms_mview.refresh(list => 'ХХХ_mv', method =>'c', atomic_refresh => false , out_of_place => true);end; 2 / PL/SQL procedure successfully completed. SQL> select executions from v$sqlstats where sql_id='bvj89m357jzpp'; no rows selected ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 11:46 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTr, Я в прошлый раз у него в блоге нашел ответ Вот топик по твоей части https://jonathanlewis.wordpress.com/2015/03/26/12c-mview-refresh/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 12:17 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
ну как бы либо данные бережем, либо курсоры ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 13:10 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
FoxeyJuliaTr, Я в прошлый раз у него в блоге нашел ответ Вот топик по твоей части https://jonathanlewis.wordpress.com/2015/03/26/12c-mview-refresh/ Читала его, но там именно мою проблему не описывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 14:18 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
DВАну как бы либо данные бережем, либо курсоры ) Ну так не все ж курсоры-то! Я понимаю, была бы зависящая query от этой вьюхи. А то вообще левая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 14:19 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTrЧитала его, но там именно мою проблему не описывают. ДокаHow to Refresh Materialized Views? For each of these refresh options, you have two techniques for how the refresh is performed, namely in-place refresh and out-of-place refresh. The in-place refresh executes the refresh statements directly on the materialized view. The out-of-place refresh creates one or more outside tables and executes the refresh statements on the outside tables and then switches the materialized view or affected materialized view partitions with the outside tables. Both in-place refresh and out-of-place refresh achieve good performance in certain refresh scenarios. However, the out-of-place refresh enables high materialized view availability during refresh, especially when refresh statements take a long time to finish. Правда могли бы добавить что старые таблица удаляются причем минуя корзину. Вот почему "она стирает курсоры, все, из library cache. Ну или почти все. Или делает их как инвалидные." SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:32 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTr, Это на продуктивной базе? Shared pool какого размера? Покажите сгруппированную статистику по всему в v$sql до и после обновления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:42 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SYJuliaTrЧитала его, но там именно мою проблему не описывают. ДокаHow to Refresh Materialized Views? For each of these refresh options, you have two techniques for how the refresh is performed, namely in-place refresh and out-of-place refresh. The in-place refresh executes the refresh statements directly on the materialized view. The out-of-place refresh creates one or more outside tables and executes the refresh statements on the outside tables and then switches the materialized view or affected materialized view partitions with the outside tables. Both in-place refresh and out-of-place refresh achieve good performance in certain refresh scenarios. However, the out-of-place refresh enables high materialized view availability during refresh, especially when refresh statements take a long time to finish. Правда могли бы добавить что старые таблица удаляются причем минуя корзину. Вот почему "она стирает курсоры, все, из library cache. Ну или почти все. Или делает их как инвалидные." SY. ну у нее select 'AAAAA' from dual стерся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:46 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
DВАну у нее select 'AAAAA' from dual стерся :) Ну я по наивности своей решил что "все" подразумевает ссылающиеся на out of place обновленные MV. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 16:59 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SYDВАну у нее select 'AAAAA' from dual стерся :) Ну я по наивности своей решил что "все" подразумевает ссылающиеся на out of place обновленные MV. SY. я тоже )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 17:00 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SY Правда могли бы добавить что старые таблица удаляются причем минуя корзину. Вот почему "она стирает курсоры, все, из library cache. Ну или почти все. Или делает их как инвалидные." SY. Старая таблица кстати удаляется не минуя корзину. Но это решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:15 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
xtenderJuliaTr, Это на продуктивной базе? Shared pool какого размера? Покажите сгруппированную статистику по всему в v$sql до и после обновления На продуктивной тоже, потому и пришлось отказываться от этого решения, т.к. сразу кучa library cache locks образовались. Shared pool - 6G, больше не увиличить. Потом начали на тестовой базе смотреть - та же фигня. Только там нагрузка меньше, потому и не поймали сразу. Статистику завтра пришлю, сегодня не работаю. Но там было забавно, я смотрела уже. До обновления максимум загруженных курсоров 20 в минуту. После - скачок на 2000 и потом большие цифры пока все не дозагружаются и опять 20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:22 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SY Правда могли бы добавить что старые таблица удаляются причем минуя корзину. Вот почему "она стирает курсоры, все, из library cache. Ну или почти все. Или делает их как инвалидные." SY. SY, Но даже если удаляется. Ну даже если минуя корзину. То курсоры-то причем? Они не зависят от этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:36 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTrНо даже если удаляется. Ну даже если минуя корзину. То курсоры-то причем? Они не зависят от этой таблицы. А как ты думаешь, что должно произойти с курсором если таблица на которую он ссылается удалена? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 19:05 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
Кстати, всего этого Oracle мог бы избежать используя метод от Jonathan Lewis - создается партицированная таблица с одной партицией куда и делается обновление с пoследующим partition exchange. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 19:15 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. Так-что открывай SR. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 20:21 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SYКстати, всего этого Oracle мог бы избежать используя метод от Jonathan Lewis - создается партицированная таблица с одной партицией куда и делается обновление с пoследующим partition exchange. SY. а разве экчеинж не проинвалидит курсоры? даже add comment на такое способен ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 22:16 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
DВАа разве экчеинж не проинвалидит курсоры? Да, ты права - exchange все таки ALTER TABLE. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 22:52 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTr, проверил на 12.2 - у меня не чистится. Выполненный в другой сессии select 'AAAAA' from dual; остался. Покажите вывод этого запрос перед и после рефреша: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 04:41 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
SYКстати, всего этого Oracle мог бы избежать используя метод от Jonathan Lewis - создается партицированная таблица с одной партицией куда и делается обновление с пoследующим partition exchange. SY. Лицензии на partitioning пока нет, а так бы да, можно было бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:24 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
xtenderJuliaTr, проверил на 12.2 - у меня не чистится. Выполненный в другой сессии select 'AAAAA' from dual; остался. Покажите вывод этого запрос перед и после рефреша: xtender , Спасибо, Это тогда точно на баг похоже. SR подняли. Я выложу результаты запроса через пару часиков - жду красивую картинку после последнего рефреша вьюхи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 11:38 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
JuliaTr, Надо незадолго до рефреша и сразу после него. Зачем ждать красивой картинки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 12:53 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
xtender, там просто в 8 часов бежал рефреш, и сразу после него цифры большие были слишком, не сильно понятно. сейчас выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 12:58 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
дo: Все строки не стала выводить, но видно, что в 8 часов бежал рефреш, в почти все были загружены тогда Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 13:04 |
|
||
|
dbms_mview.refresh with out_of_place => true
|
|||
|---|---|---|---|
|
#18+
сразу после: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39574313&tid=1883140]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 485ms |

| 0 / 0 |
