|
|
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
есть запрос вида Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. проблема в том что по table_3 происходит фуллскан, что плохо (хотя и понятно) данные здесь должны фильтроваться по table_1 гарантируется что в table_1 никогда не больше 10 записей можно конечно развернуть t3 наружу, но делать этого совсем не хочется (в реальности запрос побольше) хочется что-то вроде прокидывания предикатов, но проблема в том что предикатов тут нет есть ли какие варианты ? можно конечно вынести в функцию или продублировать джойны внутри, но всё это не красиво у меня ощущение что какой-то фичи я не знаю вобщем, посоветуйте что-нибудь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:00 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
nxxхочется что-то вроде прокидывания предикатов, но проблема в том что предикатов тут нетпредикаты джойна - тоже предикаты, они и могут пропихиваться :) а вообще есть еще латералы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:05 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
1. Предикат таки есть - это "t1.t3_id = t3.t3_id" что с учетом "гарантируется что в table_1 никогда не больше 10 записей" может быть неплохим вариантом при достаточной селективности и наличии подходящего индекса. 2. Если же хочется "фичу", то materialized view + query rewrite ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:06 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
nxxпродублировать джойны внутри, но всё это не красиво не джоин, но должно помочь Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:09 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
nxx Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. по факту у меня тут ошибка сорри Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. правильно должно быть так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:11 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
xtenderа вообще есть еще латералы я об этом подумал, но у меня 11G ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:12 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
nxx, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:12 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
Andrey.Lне джоин Код: plsql 1. 2. Это может быть фильтр, может - полусоединение, но помогать не обязано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:12 |
|
||
|
Как бы переписать запрос ?
|
|||
|---|---|---|---|
|
#18+
nxx, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2017, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39491643&tid=1885576]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 538ms |

| 0 / 0 |
