Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Разница секционированных индексов  [new]
lamer_1111
Guest
Добрый день!
1. create table a (d date, c number, e number) - секционированная по дате (RANGE)
2. create index i1 on a(c, e) local;
3. create index i1 on a(d, c, e) local;

В чем принципиальная разница между этими индексами. В dba_ind_partitions картина почти одиноковая.
Секционированы они по одному и тому же столбцу и обы локальные префиксные. В чем плюсы и минусы их.

Спасибо
29 ноя 12, 12:01    [13548135]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
lamer_1111,

Не знаю как собирали статистику, но разницу можете проверить подсчетом count(distinct d) в секции
29 ноя 12, 12:09    [13548187]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
lamer_1111
обы локальные префиксные
30 ноя 12, 04:51    [13553476]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
WWWeb
Member

Откуда: оттуда
Сообщений: 117
lamer_1111,

2 индекса с одинаковым именем...

Как насчет того, чтобы включить трейс на 12 и посмотреть планы запросов?
30 ноя 12, 05:04    [13553484]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
A.
Guest
Разница например в том, что если огромные партиции по месяцу, а надо искать день, то второй индекс может быть полезен.
Также, если будет partition pruning с рассчетом на index fast full scan
Например
select c from a where d = :d
то для первого индекса это сделать не получится.
30 ноя 12, 09:44    [13553941]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
Кто-то там...
Guest
Мой опыт показывает, что производительность с первым индексом лучше чем со вторым - просто пробовал оба в похожем случае в реальном приложении. Выбор партиции индекса будет идти даже если это поле не включено вы индекс, сам индекс будет меньше места на диске занимать. Ну и как я сказал по нему поиск будет быстрее идти - range index scan. Про full fast scan не могу сказать, в моем приложении таких запросов не было; и селективность полей c и e выше чем d (выбор за один день из месячной партиции).
30 ноя 12, 20:16    [13558709]     Ответить | Цитировать Сообщить модератору
 Re: Разница секционированных индексов  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Еще раз
Первый индекс не префиксный (и вообще не содержит ключа разбиения), соответственно, сделать его, например, уникальным неполучится

Доступ будет примерно одинаковым: если в условии не было предиката на столбец секционирования, будут сканироваться все секции индекса, если был -- то сканироваться будет только нужная секция, т.е. тот самый partition pruning.

Но первый индекс будет немного поменьше размером
3 дек 12, 05:05    [13566213]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить