У меня есть запрос:Oracle плана выполнения изменение
SELECT COUNT(1)
FROM registration r,
proxy p
WHERE r.participant_code = p.participant_code
AND r.proxy_type = p.proxy_type
AND r.proxy_value = p.proxy_value
AND r.proxy_sequence= p.proxy_sequence
Все четыре поля, используемого в условии соединения для таблицы «прокси» в «проксите» первичный ключ. В плане выполнения запроса использовался первичный ключ для сканирования, но с одного момента он неожиданно изменил сканирование индекса при полном сканировании таблицы.
После этого запроса был изменен немного (присоединяется к 'r.proxy_value = p.proxy_value' и 'r.proxy_type = p.proxy_type', где поменяны местами):
SELECT COUNT(1)
FROM registration r,
proxy p
WHERE r.participant_code = p.participant_code
AND r.proxy_value = p.proxy_value
AND r.proxy_type = p.proxy_type
AND r.proxy_sequence= p.proxy_sequence
На самом деле оба запроса эквивалентны. Однако после этого изменения план выполнения второго запроса начинает использовать сканирование индекса вместо полного сканирования.
Теперь у меня есть очень конкретный вопрос:
Будет ли Oracle перекомпилировать второй запрос и он будет вести для запроса выполнения изменения плана?
Эти два вопроса являются _apparently_ эквивалентными/идентичными, за исключением порядка условий в предложении 'WHERE'. Хотя интуитивно можно подумать, что они такие же, я бы сделал их одинаковыми и повторными (да, я согласен с вами в том, что эти швы являются очень любительским комментарием, но я был слишком удивлен в своей жизни этот тип вещей). – FDavidov
Вы знаете, на самом деле я протестировал этот сценарий (да, поведение было изменено, также обратите внимание, что очень сложно перепроверить, потому что у меня нет контроля над механизмом управления планом выполнения Oracle), мне нужно подробное объяснение того, как Oracle рассматривает эту ситуацию. Будут оценены любые ссылки на документацию Oracle. – mvb13
Я не уверен, что я тебя. Вы сделали оба варианта одинаковыми (изменив порядок условий в предложении 'WHERE')? Если да, вы наблюдали за ними различные планы выполнения? – FDavidov