|
|
|
Странное поведение оптимизатора
|
|||
|---|---|---|---|
|
#18+
Коллеги, доброго времени суток. Вчера столкнулся с оочень странной ситуацией. Код: 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. Собственно примитивный пример. Две таблички, форейн кей из kim1 на kim2. В kim2 поле Code уникальное. Теперь предположим, что я ошибся в написании запроса к этим двум таблицам, и склеил их не по kim1.ref_id = kim2.id, а kim1.ref_id = kim2.code (собственно так ситуация и обнаружилась). Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. Собственно, уже на этом моменте я решил, что упоролся. Смотрим план... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. То есть в kim2 он не обращался вообще, и просто прочел значения из kim1.ref_id, считая что они будут равны kim2.code (т.к. это условие склейки). Но это посыл неверный, т.к. foreign key то указывает с kim1.ref_id на kim2.id, а не на Code. Ну и последняя вводная, если дропнуть индекс на уникальность code, запрос сразу работает корректно. Сразу предварительный план нормальный... Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И результат предсказуемый... Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:07 |
|
||
|
Странное поведение оптимизатора
|
|||
|---|---|---|---|
|
#18+
Собственно, перечитал написанное, и понял, что слово "Собственно" стало словом-паразитом у меня...но это оффтоп) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:09 |
|
||
|
Странное поведение оптимизатора
|
|||
|---|---|---|---|
|
#18+
csc.pau, Видимо join elimination на твоей версии некорректно работает. Можешь поковырять 10053 если интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:16 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39469361&tid=1885786]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 508ms |

| 0 / 0 |
