Поиск непараметризованных запросов. Запросы без BIND переменных Oracle DB

Для поиска запросов с большим Version Count (запросы без использования bind переменных) можно использовать запрос ниже:

  1. SELECT PLAN_HASH_VALUE,MODULE, COUNT(SQL_ID) #b1b100;">AS CNT
  2. FROM V$SQLAREA
  3. WHERE SQL_TEXT NOT LIKE '%dynamic_sampling%'
  4. GROUP
  5. BY PLAN_HASH_VALUE, MODULE
  6. HAVING COUNT(SQL_ID) > #cc66cc;">10
  7. ORDER
  8. BY #cc66cc;">3 DESC
  9.  

Более расширенный запрос на базе первого

  1. WITH SRC #b1b100;">AS ( SELECT PLAN_HASH_VALUE,MODULE, COUNT(SQL_ID) #b1b100;">AS CNT
  2. FROM V$SQLAREA
  3. WHERE SQL_TEXT NOT LIKE '%dynamic_sampling%'
  4. GROUP
  5. BY PLAN_HASH_VALUE, MODULE
  6. HAVING COUNT(SQL_ID) > #cc66cc;">10
  7. ORDER
  8. BY #cc66cc;">3 DESC
  9. )
  10. SELECT SRC2.PLAN_HASH_VALUE
  11. , SRC2.MODULE
  12. , SRC2.SQL_TEXT
  13. , SRC2.SQL_FULLTEXT
  14. , SRC2.CNT
  15. , SRC2.FIRST_LOAD_TIME
  16. , SRC2.LAST_LOAD_TIME
  17. FROM (SELECT V$SQLAREA.PLAN_HASH_VALUE
  18. , V$SQLAREA.MODULE
  19. , V$SQLAREA.SQL_TEXT
  20. , V$SQLAREA.SQL_FULLTEXT
  21. , V$SQLAREA.FIRST_LOAD_TIME
  22. , V$SQLAREA.LAST_LOAD_TIME
  23. , SRC.CNT
  24. , ROW_NUMBER() OVER (PARTITION BY V$SQLAREA.PLAN_HASH_VALUE ORDER BY SRC.CNT DESC) #b1b100;">AS RN
  25. FROM SRC
  26. JOIN V$SQLAREA
  27. ON SRC.PLAN_HASH_VALUE = V$SQLAREA.PLAN_HASH_VALUE
  28. ) SRC2
  29. WHERE SRC2.RN = #cc66cc;">1
  30. ORDER
  31. BY SRC2.CNT DESC;
  32.  
12:39
1.18K
Нет комментариев. Ваш будет первым!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.