Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять CBO... / 13 сообщений из 13, страница 1 из 1
02.04.2003, 14:22
    #32131852
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Делаю простенький запрос к одной таблице
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
02.04.2003, 14:46
    #32131885
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Вы получите записи в порядке, определяемом "order by ff2". Все остальные предположения - от лукавого
...
Рейтинг: 0 / 0
02.04.2003, 18:15
    #32132179
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Я тоже сомневался, а потом прочитал в доке о внутреннем устройстве индексов.Цитата:"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
02.04.2003, 21:37
    #32132255
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
это ничего не меняет
...
Рейтинг: 0 / 0
03.04.2003, 12:46
    #32132589
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Почему не меняет?
...
Рейтинг: 0 / 0
03.04.2003, 13:02
    #32132617
Bagira
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Может и поменяло бы, если б Вы явно не указали сортировку в order by. IMHO она является приоритетным
...
Рейтинг: 0 / 0
03.04.2003, 13:28
    #32132658
ora600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Несмотря на абсолютную бесполезность данного познания :-) провел маленькое исследование.
Итог - нет рассчитывать нельзя.
Из таблички с парой неуникальных индексов селектил rowid , хинтом заставляя использовать full index scan . Rowid выбирались неупорядоченно
...
Рейтинг: 0 / 0
03.04.2003, 13:43
    #32132686
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
2Bagira: Конечно, сортировка order by является приоритетной. Я лишь говорю о том, что если значения всех полей в неуникальном индексе совпадает, то сортироватся должно по rowid, что и нашел в документации("They are sorted by (key, ROWID).")
2ora600: Значит в документации врут? Или я неправильно что-то понимаю?
...
Рейтинг: 0 / 0
03.04.2003, 13:55
    #32132710
ora600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Хотя нет, упорядоченность есть. Естественно, по принципу "group by"
select /*+ index(t idx)*/ col, rowid from t
где idx - индекс по col
только сортировка внутри ключа какая-то не совсем понятная
'A' < 'a' < '1' < '+'
...
Рейтинг: 0 / 0
03.04.2003, 14:01
    #32132727
ora600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
2Korobok
Нет, не врут Извини, я просто не совсем врубился, что именно ты хочешь выяснить.
...
Рейтинг: 0 / 0
03.04.2003, 15:08
    #32132816
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Вот я и говорю, что иногда это дело не срабатывает, пока не расчитаешь статистику.
...
Рейтинг: 0 / 0
03.04.2003, 15:15
    #32132828
ora600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Путаешь причину и следствие:
причина - план запроса (использование индекса)
следствие - до сбора статистики был не использующий индекс план
...
Рейтинг: 0 / 0
03.04.2003, 15:21
    #32132837
Korobok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять CBO...
Да, вполне вероятно, что так и происходит. Но я посмотрел план до и после расчета статистики. И в том и другом случае делается table access full. Единственное отличие в размере bytes. После расчета статистики это число уменьшается.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Опять CBO... / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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