|
|
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Необходимо для каждой записи из t1 выбрать не более 10 записей из t2 по условию t1.id=t2.id Код: plsql 1. 2. 3. 4. 5. Проблема в том, что такой запрос приводит к index full scan по t2. FIRST_ROWS не помогает. Можно ли оптимизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 07:04 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
alx71, Ваша хотелка хорошо бы легла на механизмы [[CROSS | OUTER] APPLY | LATERAL] джойнов в паре с TOP-N запросами (OFFSET FETCH N FIRST | LAST ROWS ONLY). Но такое официально доступно лишь с версии 12с. З.Ы. Небольшими хитростями можно заставить работать LATER на версии 11g. Логику топ-n запросов придется городить по старинке - через ROWNUM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 07:35 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, можете привести пример с TOP-N для случая partition by t1.id в 12-ке ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:19 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
alx71Необходимо для каждой записи из t1 выбрать не более 10 записей из t2 по условию t1.id=t2.id Код: plsql 1. 2. 3. 4. 5. Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:25 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
-2-, я упростил свою ситуацию. IRL t1 выбрасывать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 09:48 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
alx71я упростил свою ситуацию.А я упростил свою оптимизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 10:33 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
alx71, Селект ОЧЕНЬ упрощен, и я не уверен что он в ТАКОМ виде тоже работает по full scan. А так, попробуйте хинтами прибить https://docs.oracle.com/cd/B12037_01/server.101/b10752/hintsref.htm или покажите оригинальный селект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 10:34 |
|
||
|
Помогите с оптимизацией запроса
|
|||
|---|---|---|---|
|
#18+
StaxЩукина Анна, можете привести пример с TOP-N для случая partition by t1.id в 12-ке ..... stax Oracle 12c под рукой нет, покажу на скульсервере. Тестовые данные - немного отличается по синтаксису от оракла, но основная часть запроса, в том числе OUTER APPLY подзапрос (?) и OFFSET / FETCH - в точности соответствуют оракловым, ибо - стандарт ANSI ;) запрос, проверка на скульфидле: http://sqlfiddle.com/#!18/9eecb/34913 Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 18:51 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1883414]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 424ms |

| 0 / 0 |
