Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
Добрый день.
Требуется создать индексы по след-м полям:
поле1;
поле2;
поле1, поле2;
поле1, поле2, поле3;
В какой очередности правильние создавать эти индексы?
Заранее спасибо.
5 мар 07, 17:55    [3865536]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Mikst-
Guest
Uzrptav
Добрый день.
Требуется создать индексы по след-м полям:
поле1;
поле2;
поле1, поле2;
поле1, поле2, поле3;
В какой очередности правильние создавать эти индексы?
Заранее спасибо.


Когда индексов так мало, совершенно неважно в какое последовательности их создавать.
5 мар 07, 18:00    [3865572]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
Добрый день.
Требуется создать индексы по след-м полям:
поле1;
поле2;
поле1, поле2;
поле1, поле2, поле3;
В какой очередности правильние создавать эти индексы?
Заранее спасибо.

Сначала второй, затем - последний
Полушутка - в смысле, подумайте, не хватит ли этих двух.
5 мар 07, 18:04    [3865603]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
автор
Когда индексов так мало, совершенно неважно в какое последовательности их создавать.

Просто, индексирование по одному полю длится около 90 минут. :(
автор
Сначала второй, затем - последний
Полушутка - в смысле, подумайте, не хватит ли этих двух.

Это для поиска... например, поиск по Ф.И.О. или по Ф.И.О. и дате рождения.
5 мар 07, 18:11    [3865658]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Mikst-
Guest
Uzrptav
автор
Когда индексов так мало, совершенно неважно в какое последовательности их создавать.

Просто, индексирование по одному полю длится около 90 минут. :(
автор
Сначала второй, затем - последний
Полушутка - в смысле, подумайте, не хватит ли этих двух.

Это для поиска... например, поиск по Ф.И.О. или по Ф.И.О. и дате рождения.


Вопрос: зачем индекс "поле1", когда есть "поле1, поле2".
конечно в определенных случаях это имеет смысл, но ваш ли это случай?
5 мар 07, 18:14    [3865678]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
Это для поиска... например, поиск по Ф.И.О. или по Ф.И.О. и дате рождения.

Тем более, подумайте..
5 мар 07, 18:18    [3865704]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
К сожалению такая постановка задачи.
Требуется быстрый поиск. Иногда имеется инф-я только для одного/двух критериев поиска.
5 мар 07, 18:19    [3865712]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
К сожалению такая постановка задачи.
Требуется быстрый поиск. Иногда имеется инф-я только для одного/двух критериев поиска.

Использование индекса из трех атрибутов для отбора по 1/2 головным скорее всего будет
равноэффективно, отдельному индексу по тем 1/2..
5 мар 07, 18:25    [3865744]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
-+
Guest
Uzrptav
Иногда имеется инф-я только для одного/двух критериев поиска

Если индекс включает в себя поле для одного критерия, он вполне можнт быть использован. Яркий пример

поле1;
поле1, поле2;
5 мар 07, 18:27    [3865758]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
_Tims_
Member [заблокирован]

Откуда:
Сообщений: 216
а много данных-то будет? если немного (меньше милиона), то три индекса поле1, поле2 и поле3

а если много, то сделай таблицу IOT, упорядоченную по первичному ключу поле1; поле2; поле3
и индексы поле1 и поле3

если поле1 встречается очень часто, то можешь применить compress 1 (иногда очеееень помогает) :)
5 мар 07, 21:56    [3866428]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
_Tims_
Member [заблокирован]

Откуда:
Сообщений: 216
Uzrptav
автор
Когда индексов так мало, совершенно неважно в какое последовательности их создавать.

Просто, индексирование по одному полю длится около 90 минут. :(
автор
Сначала второй, затем - последний
Полушутка - в смысле, подумайте, не хватит ли этих двух.

Это для поиска... например, поиск по Ф.И.О. или по Ф.И.О. и дате рождения.

упс... не заметил, данных значит много
попробуй таблицу IOT со сжатием
5 мар 07, 22:00    [3866439]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
Uzrptav
К сожалению такая постановка задачи.
Требуется быстрый поиск. Иногда имеется инф-я только для одного/двух критериев поиска.


Индекс может использоваться, если предикаты входят в его префикс. Вам, скорее всего, нужно два индекса, а не 4.

(поле2)
(поле1, поле2, поле3)

если поле1 имеет мало distinct-значений (но, похоже, это маловероятно) - то и вообще последнего индекса может быть достаточно (index skip scan).
6 мар 07, 04:50    [3867027]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
Всем большое спасибо!!! Будем ваять... :)
6 мар 07, 10:28    [3867835]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Splain
Member

Откуда: Череповец
Сообщений: 924
Mikst-

Вопрос: зачем индекс "поле1", когда есть "поле1, поле2".
конечно в определенных случаях это имеет смысл, но ваш ли это случай?


Не подскажете, в каких именно случаях?
6 мар 07, 12:02    [3868685]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
если у вас не OLTP таблица, рассмотрите использование всего трех bitmap-индексов (по одному на каждое поле), эффективно обрабатывающих ситуации WHERE поле1=а and поле2=b and...
6 мар 07, 13:03    [3869246]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Думаю если речь идёт о поиске по фамилии то bitmap index здесь не подойдёт.
Как уже говорилось више я голосую за такий индеси
поле2
поле1+поле2+поле3
Хотя для чистоти екперимента неплохо било би узнать тип полей
6 мар 07, 13:12    [3869345]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Mikst-
Guest
Splain
Mikst-

Вопрос: зачем индекс "поле1", когда есть "поле1, поле2".
конечно в определенных случаях это имеет смысл, но ваш ли это случай?


Не подскажете, в каких именно случаях?


Когда важен размер. например поле2 char(200), содержит много различных значений. а поле1 меняется редко. в таком случае (да еще и компрессированный) поле1 индекс будет намного меньше.
6 мар 07, 13:13    [3869352]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
автор
Когда важен размер. например поле2 char(200), содержит много различных значений. а поле1 меняется редко. в таком случае (да еще и компрессированный) поле1 индекс будет намного меньше.


Так оно и есть, поле1 - уникальное(ном. паспорта или ИНН) тип number(10)
поле2 - Ф.И.О. Varchar2(256)
поле3 - Адрес Varchar2(256)
6 мар 07, 13:55    [3869700]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
автор
Когда важен размер. например поле2 char(200), содержит много различных значений. а поле1 меняется редко. в таком случае (да еще и компрессированный) поле1 индекс будет намного меньше.


Так оно и есть, поле1 - уникальное(ном. паспорта или ИНН) тип number(10)
поле2 - Ф.И.О. Varchar2(256)
поле3 - Адрес Varchar2(256)

полоффтопа - жизнь с этой уникальностью не стыкуется.. Берегись!
6 мар 07, 13:58    [3869723]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
автор
полоффтопа - жизнь с этой уникальностью не стыкуется.. Берегись

Давайте не будем оспаривать методологию.
6 мар 07, 14:02    [3869766]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
автор
полоффтопа - жизнь с этой уникальностью не стыкуется.. Берегись

Давайте не будем оспаривать методологию.
Дык - моё дело, знамо, сторона..
(а методолог у вас хромой )
6 мар 07, 14:05    [3869796]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
Uzrptav
Member

Откуда: Киев- >Троещина->ДВРЗ->Троещина
Сообщений: 98
автор
Дык - моё дело, знамо, сторона..
(а методолог у вас хромой )

Насчет уникальности, были преценденты?
6 мар 07, 14:13    [3869861]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
contr
Member

Откуда:
Сообщений: 1909
Uzrptav
автор
Дык - моё дело, знамо, сторона..
(а методолог у вас хромой )

Насчет уникальности, были преценденты?

Меня тут порадовали случаем неуникального ИНН :)
6 мар 07, 14:14    [3869873]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания индексов.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Uzrptav
автор
Дык - моё дело, знамо, сторона..
(а методолог у вас хромой )

Насчет уникальности, были преценденты?
Ну а я про что!?
6 мар 07, 14:15    [3869887]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить