|
|
|
долгий запрос, потом быстро
|
|||
|---|---|---|---|
|
#18+
добрый день. не имею опыта в sql .. просто подскажите.. спасибо. запрос выполняется 15 минут. callsign_base ~ 15 млн строк, callsign_sps ~ 4.5 млн строк. Если выполнить сразу второй раз , то выполнится не более чем за 30 сек ... через некоторое время снова по 15 минут. oradb ver 12.1.0.2 Подскажите, что сделать для быстрого выполнения? сделать индекс на 2 поля (t0.id$ и t0.callsign)? Загнать в костыльный джоб этот селект, чтобы из кэша не выпадало? Может сам запрос с условием построен не верно? хинты какие добавить? Код: 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. plan: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:23 |
|
||
|
долгий запрос, потом быстро
|
|||
|---|---|---|---|
|
#18+
flint1, Такое? Ну и со скобками - зачем, и LIKE '%%' можно менять на is not null Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 19:19 |
|
||
|
долгий запрос, потом быстро
|
|||
|---|---|---|---|
|
#18+
flint1Может сам запрос с условием построен не верно? хинты какие добавить? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 1. Освежите статистику на таблицах и индексах. 2. План запроса прибит гвоздиком, изучайте тему https://docs.oracle.com/database/121/TGSQL/tgsql_profiles.htm#TGSQL599 3. 15 минут - это когда пошариться по индексам и реально собрать данные с диска. При указанном плане данные попадут в буферный кэш, и последующие вызовы не будут читать диск. К сожалению, SGA не резиновая и прочитанные индексные блоки будут вымываться из кэша. Попытаться удержать их в SGA, конечно, можно, но очень не рекомендовал бы - коллеги обидятся :) 4. Сократить "15 минут" с указанным набором предикат можно, если уйти от IFS CALLSGN в пользу FTS CALLSIGN_BASE, однако не уверен, что "t0.callsign LIKE '%%'" - именно то, ради чего создавался запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 19:33 |
|
||
|
долгий запрос, потом быстро
|
|||
|---|---|---|---|
|
#18+
а нет возможности показать план с реальными цифрами? Может он замониторился и есть необходимая лицензия - тогда например так: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 20:05 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39740076&tid=1883103]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 398ms |

| 0 / 0 |
