Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ИНДЕКСЫ, ИНДЕКСЫ, ИНДЕКСЫ......... [D7, IB6.x]


Sable ©   (2004-02-05 00:50:00) 

Друзья мои, разрешите мое заблуждение...

Существует таблица, с кучей полей

Field1
Field2
Field3
Field4

По улсловиям задачи, необходимо организовать быстрый поиск по любому набору полей. Как сделать правильно: создать индексы на все возможные комбинации или один индекс со всеми полями ?


Sable_W   (2004-02-05 12:18:00) [1]

Ок Johnmen, спасибо... :)


Johnmen   (2004-02-05 12:14:00) [2]

>Sable_W (05.02.04 12:11)

Не знаю. Т.к. твой случай не знаю...

"панацея" - мифологическое лекарство от всехболезней.
В природе не существует...:)


Sable_W   (2004-02-05 12:11:00) [3]

to Johnmen

Ну а в моем случае какая может быть панацея? или действительно описывать все и вся ?


Johnmen   (2004-02-05 12:02:00) [4]

>Sable_W (05.02.04 11:58)

>Какие могут быть факторы

1. Общее количество индексов
2. Селективность индексов
3. Количество записей в таблице
...


Sable_W   (2004-02-05 11:58:00) [5]

to Johnmen

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

Какие могут быть факторы (ну хоть приблизительно...)


Johnmen   (2004-02-05 11:54:00) [6]

>А если на момент выполнения я не знаю сколько будет параметров...

... ?

>И насколько медленно будет проходить вставка ?

Я уже говорил, что это зависит от ряда факторов...
Конкретное число раз никто назвать не сможет :)


Sable_W   (2004-02-05 11:41:00) [7]

А если на момент выполнения я не знаю сколько будет параметров... запрос строится и таблицы join"ся когда параметры уже юзверем указаны... И насколько медленно будет проходить вставка ?


Johnmen   (2004-02-05 11:36:00) [8]

>Sable_W (05.02.04 11:11)

Для минимизации скорости выполнения достаточно индексов на
table1.table2id,table2.table2id,
table1.table3id,table3.table3id,
...
TableY.TableXid,TableX.TableXid

и
table1.value1,table2.value2,table3.value3,...,tableX.valueY


Sable_W   (2004-02-05 11:11:00) [9]

to Johnmen ©
Ну скажем сдесь запрос такой
Select * from table1
Join table2 on table1.table2id=table2.table2id
join table2 on table1.table3id=table3.table3id
...
join tableX on TableY.TableXid=TableX.TableXid

Where table1.value1=Value1,
table2.value2=Value2,
table3.value3=Value3,
...
tableX.valueY=ValueY
И затевается все для получения набора данных из Table1...


Johnmen   (2004-02-05 11:00:00) [10]

>...не будет дико тормозить ?

Тормозить будет. Величина торможения зависит от ряда некоторых условий...

>И будет ли IB использовать эти наборы при селекте без явного указания плана ?

Зависит опять-таки от вида запросов.


Sergey13   (2004-02-05 10:55:00) [11]

2SasaR (05.02.04 10:40) [3]
>не будет дико тормозить ?
Будет. Это как рычаг - выигрываешь в силе, проигрываешь в расстоянии (или как то так 8-). Конкретная конструкция зависит от задачи.


SasaR   (2004-02-05 10:40:00) [12]

Понимаю, что некультурно задавать вопрос в другой ветке, но пусть ответ на него расширит наши горизонты в этой области:
Разве вставка в такую таблицу с такими индексами как в предыдущем примере не будет дико тормозить ? И будет ли IB использовать эти наборы при селекте без явного указания плана ?


Johnmen   (2004-02-05 09:39:00) [13]

Если самое главное "организовать быстрый поиск по любому набору полей", а на остальные отрицательные моменты наплевать, то "на все возможные комбинации". Причем достаточно
Field1,Field2,Field3,Field4,
Field1+Field2,Field1+Field3,Field1+Field4,Field2+Field3,Field2+Field4,Field3+Field4,
Field1+Field2+Field3,Field1+Field2+Field4,Field1+Field3+Field4,Field2+Field3+Field4,
Field1+Field2+Field3+Field4


Кщд   (2004-02-05 05:40:00) [14]

в такой постановке - на все возможные, т.е. все сочетания без учета порядка


Наверх

Титульная страница Поиск, карта сайта Написать письмо