|
soft parse: native dynamic sql vs dbms_sql
|
|||
---|---|---|---|
#18+
Всем привет. Столкнулся с такой проблемой, что при выполнении одного и того же куска кода с разными биндам NDS оптимизирует работу, не выполняя даже soft parse в больших количествах, в то время как dbms_sql его выполняет. Тест кейс: ddl Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
NDS Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
dbms_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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
А теперь результаты выполнения по запросу ниже до и после выполнения + разница значений: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Статистика выполнения: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Насколько я знаю parse count(total) = soft parse + hard parse. Соответственно hard мы знаем и он не сильно между NDS и dbms_sql отличается, а вот soft значительно. Подскажите, плиз, можно ли избавиться от soft parse в рамках использования dbms_sql и если нет, то почему тогда NDS не делает soft? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 10:11 |
|
soft parse: native dynamic sql vs dbms_sql
|
|||
---|---|---|---|
#18+
А зачем ты выполняешь каждый раз parse принудительно? Вся фишка именно в том чтоб выполнить parse (да и bind, define) один раз, а затем только exec-fetch столько, сколько надо https://docs.oracle.com/database/121/ARPLS/d_sql.htm#BABDJEBE ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 10:24 |
|
soft parse: native dynamic sql vs dbms_sql
|
|||
---|---|---|---|
#18+
А зачем Код: plsql 1. 2.
внутри цикла делаешь? Это же разовая операция, выноси и смотри что получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 10:28 |
|
soft parse: native dynamic sql vs dbms_sql
|
|||
---|---|---|---|
#18+
Sah, Внутри цикла делаю так, как предполагается, что полный набор операторов, включая parse, должен выполняться из разных сессий. Цикл был добавлен для симуляции частоты выполнения. Выполнение NDS в цикле не прибавило количество parse. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 10:59 |
|
|
start [/forum/topic.php?fid=52&fpage=16&tid=1880056]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 235ms |
total: | 393ms |
0 / 0 |