Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.03.2020, 15:03
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#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.
При парсинге запроса без переменных генерится вполне устраивающая меня предикатная информация, дающая приличный план доступа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
При парсинге с приложений в качестве значений биндов периодически прилетают null и предикатная информация в соответствии с ограничением первичного ключа not null выдает идеальный на ее взгляд план с нулевыми чтениями Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Следом прилетают не нулевые значения и начинаются танцы с бубном адапривных курсоров с механизмом Extended Cursor Sharing Курсоры скачут аки кони, планы большей частью не удачные, поскольку сам запрос вызывается не часто. Вопрос, как бы закрепить план с хорошей предикатной информацией 12 - access("E1"."C_ARCH_UP_LEVEL"=PRIOR "E1"."ID") вместо 12 - access("E1"."C_ARCH_UP_LEVEL"=PRIOR NULL) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 15:32
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
DВА, Так и закрепи патчем/профилем/бейслайном... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 15:49
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
xtender DВА, Так и закрепи патчем/профилем/бейслайном... так вот и не могу сообразить как планы-то одинаковые ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:18
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
DВА, хэши то должны отличаться по идее? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:28
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
feagor, единственное чем планы отличаются, это Predicate Information ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:29
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
DВА, трудно тебя понять... выгрузи по обоим планам/запросам отчет sqldb360: https://github.com/sqldb360/sqldb360 можешь на почту мне кинуть, если светить не хочешь ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:49
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
feagor, Каждый школьник знает, что хеш генерится по операциям плана и предикаты на него не влияют. DВА, alter session и отключить либо bind peeking либо одну из трансормаций не варинат? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:53
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
Кобанчег alter session Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:22
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
Кобанчег Кобанчег alter session Код: plaintext
хинт работает, но красивый курсор быстро инвалидится, когда в него прилетают null значения, генерится не красивый, и дальше все выполняются по нему ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:36
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
Это может быть неверная гипотеза, что эти планы отличаются по производительности для одних и тех же вводных. Есть ли SQL monitor report'ы доказывающие обратное? test case Код: 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.
Похоже просто reporting issue. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:01
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
тоже самое через explain plan Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:22
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
перед explain plan индексы были переделаны в unique, поэтому unique scan, это можно игнорировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 19:41
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
Alexander Anokhin Похоже просто reporting issue. Вот тут описано Different Information Provided by v$sql_plan and explain plan (Doc ID 734133.1) , хотя объяснение довольно таки странное, что, вероятно, объясняется тем, что оно было дано аж в 2007 году для версии 10.2.0.3 ( https://support.oracle.com/epmos/faces/BugDisplay?id=6447953 ). Можно пойти дальше Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2020, 17:35
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
Alexander Anokhin Это может быть неверная гипотеза, что эти планы отличаются по производительности для одних и тех же вводных. Да, возможно я не в том вижу причину, тогда тем более не понятно, что при выполнении из приложения и sqlplus с теми же самыми значениями биндов и потому же самому плану, более того, с тем же самым sql_id, но новым курсором, количество логических чтений отличается на порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2020, 18:15
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
DВА, Недостаточно информации, чтобы делать какие-либо выводы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.03.2020, 23:54
|
|||
---|---|---|---|
|
|||
Оптимизация запроса |
|||
#18+
DВА Кобанчег пропущено... Хотя хинт же вроде можно и патчем прилепить, но Код: plaintext
хинт работает, но красивый курсор быстро инвалидится, когда в него прилетают null значения, генерится не красивый, и дальше все выполняются по нему ) а какая причина инвалидации в gv$sql_shared_cursor? По идее как раз же не должен подглядывать что там прилетает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 02:38
|
|||
---|---|---|---|
Оптимизация запроса |
|||
#18+
DВА не понятно, что при выполнении из приложения и sqlplus с теми же самыми значениями биндов и потому же самому плану, более того, с тем же самым sql_id, но новым курсором, количество логических чтений отличается на порядок. может поможет: https://hourim.wordpress.com/?s=phv2 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1881486]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 19ms |
total: | 158ms |
0 / 0 |