powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять CBO...
13 сообщений из 13, страница 1 из 1
Опять CBO...
    #32131852
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю простенький запрос к одной таблице
select /*+ALL_ROWS*/ rowid,f1,f2,f3...
from t1
where ff1 = :p1 and ff2 = :p2 order by ff2
Есть неуникальный индекс по полям ff1 и ff2. В таблице три записи, и значения полей для ff1 и ff2 во всех записях одинаковые. Имею ли я право расчитывать, что в результате получу записи в порядке возрастания rowid?
Дело в том, что до сбора статистики по таблице порядок непредсказуем. После сбора статистики я получаю в порядке возрастания rowid.
...
Рейтинг: 0 / 0
Опять CBO...
    #32131885
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы получите записи в порядке, определяемом "order by ff2". Все остальные предположения - от лукавого
...
Рейтинг: 0 / 0
Опять CBO...
    #32132179
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже сомневался, а потом прочитал в доке о внутреннем устройстве индексов.Цитата:"For a nonunique index, the rowid is included in the key in sorted order, so nonunique indexes are sorted by the index key and rowid. "
...
Рейтинг: 0 / 0
Опять CBO...
    #32132255
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это ничего не меняет
...
Рейтинг: 0 / 0
Опять CBO...
    #32132589
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не меняет?
...
Рейтинг: 0 / 0
Опять CBO...
    #32132617
Bagira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может и поменяло бы, если б Вы явно не указали сортировку в order by. IMHO она является приоритетным
...
Рейтинг: 0 / 0
Опять CBO...
    #32132658
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несмотря на абсолютную бесполезность данного познания :-) провел маленькое исследование.
Итог - нет рассчитывать нельзя.
Из таблички с парой неуникальных индексов селектил rowid , хинтом заставляя использовать full index scan . Rowid выбирались неупорядоченно
...
Рейтинг: 0 / 0
Опять CBO...
    #32132686
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Bagira: Конечно, сортировка order by является приоритетной. Я лишь говорю о том, что если значения всех полей в неуникальном индексе совпадает, то сортироватся должно по rowid, что и нашел в документации("They are sorted by (key, ROWID).")
2ora600: Значит в документации врут? Или я неправильно что-то понимаю?
...
Рейтинг: 0 / 0
Опять CBO...
    #32132710
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, упорядоченность есть. Естественно, по принципу "group by"
select /*+ index(t idx)*/ col, rowid from t
где idx - индекс по col
только сортировка внутри ключа какая-то не совсем понятная
'A' < 'a' < '1' < '+'
...
Рейтинг: 0 / 0
Опять CBO...
    #32132727
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Korobok
Нет, не врут Извини, я просто не совсем врубился, что именно ты хочешь выяснить.
...
Рейтинг: 0 / 0
Опять CBO...
    #32132816
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я и говорю, что иногда это дело не срабатывает, пока не расчитаешь статистику.
...
Рейтинг: 0 / 0
Опять CBO...
    #32132828
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Путаешь причину и следствие:
причина - план запроса (использование индекса)
следствие - до сбора статистики был не использующий индекс план
...
Рейтинг: 0 / 0
Опять CBO...
    #32132837
Korobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вполне вероятно, что так и происходит. Но я посмотрел план до и после расчета статистики. И в том и другом случае делается table access full. Единственное отличие в размере bytes. После расчета статистики это число уменьшается.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять CBO...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]