|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Всем привет. Включил Flashback Archive для таблицы advisory_arch_20190624: Запрос ниже выполняется мгновенно и возвращает пару записей: Код: plsql 1. 2. 3. 4.
Мне нужно достать юзера, который внес эти изменения. Использую для этих целей: Код: plsql 1.
Но если оба селекста скомпоновать в единый запрос , например вот так - получаю висяк. Код: sql 1. 2. 3. 4. 5.
Есть PK c индексом для vms.advisory_arch_20190624.advisoryid, но запрос все равно работает через - TABLE ACCESS FULLE TABLE Я правильно понимаю, что для флешбек-архивов всегда будет FULL ACCESS ? Как тогда оптимизировать? Или может есть альтернативные способы достать юзера , изменившего строку - для основной таблицы (advisory_arch_20190624)? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 11:24 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
sam_sql.ru, first_rows или leading+use_nl ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 14:01 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
для таблиц flashback archive можно строить индексы ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 18:50 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Vivat!Sanдля таблиц flashback archive можно строить индексы я же написал, что индекс уже есть ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 19:31 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
-2-sam_sql.ru, first_rows или leading+use_nl Чет не помогло. Есть еще варианты ? копаю в разные стороны... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 19:32 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Вот результат плана. Обратите внимание на строку№ 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 19:38 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
sam_sql.ruVivat!Sanдля таблиц flashback archive можно строить индексы я же написал, что индекс уже есть в плане видно же, что то что касается flashback archive как раз индекс использует, остальная часть к нему не относится. Ну и то что Вы пытаетесь сделать делается через аудит, встроенный либо какой-то самописный. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 19:56 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Vivat!Sansam_sql.ruпропущено... я же написал, что индекс уже есть в плане видно же, что то что касается flashback archive как раз индекс использует, остальная часть к нему не относится. Ну и то что Вы пытаетесь сделать делается через аудит, встроенный либо какой-то самописный. Да я вижу что индекс используется. Но запрос-то по прежнему висит. Думаю зз-за Fixed tables. Ищу пути решения. Самописный ? Серъезно ? )) Это и есть путь решения по оптимизации? Про какой конкретно Аудит идет речь? FDA для моих целей думаю будет вполне достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 21:11 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Простой фикс: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: 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.
Дело в том, что FIXED TABLE/FIXED INDEX это встроенные сишные функции и оптимизатор работает с ними немного по-другому и доступ к ним нужно максимально упрощать и избегать любых функций в предикатах, по которым хочешь использование "FIXED TABLE FIXED INDEX", т.к. это входные параметры к функции FIXED TABLE. А в твоем случае VERSIONS_XID - это как раз функция (псевдостолбец/pseudocolumn) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 01:23 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
Решил собрать в одном месте свои сообщения по похожим темам: Accelerating V$SESSION_EVENT Возможно ли создать индекс на fixed table (x$)? Проблема с latch free (library cache) SQL and comparison strings don't ignore case Описание fixed table Ну и простенькие скрипты для просмотра описания и индексов на fixed tables: https://github.com/xtender/xt_scripts/blob/master/fixed_tables.sql https://github.com/xtender/xt_scripts/blob/master/fixed_indexes.sql Пример: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 01:35 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
xtenderПростой фикс: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: 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.
Дело в том, что FIXED TABLE/FIXED INDEX это встроенные сишные функции и оптимизатор работает с ними немного по-другому и доступ к ним нужно максимально упрощать и избегать любых функций в предикатах, по которым хочешь использование "FIXED TABLE FIXED INDEX", т.к. это входные параметры к функции FIXED TABLE. А в твоем случае VERSIONS_XID - это как раз функция (псевдостолбец/pseudocolumn) Понял, Спасибо! К сожалению этот запрос с хинтами тоже зависает. Переписал на подзапрос из этой таблицы через самописную функцию - работает быстро! Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 07:42 |
|
Как оптимизировать запрос с flashback_transaction_query
|
|||
---|---|---|---|
#18+
sam_sql.ruСамописный ? Серъезно ? )) Это и есть путь решения по оптимизации?Чудак, собственное решение всегда легко поддаётся прогнозируемому управлению. Но дон-кихоты предпочитают боротся с мельницами оракла… Ковыряться в говнах его кишок… Это путь DBA. А здравые разработчики выберут другой путь, просто чтобы не создавать этих проблем в первую очередь себе, а опосредованно - DBA. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 07:54 |
|
|
start [/forum/topic.php?fid=52&fpage=73&tid=1882359]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 394ms |
0 / 0 |