Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

ИНДЕКСЫ, ИНДЕКСЫ, ИНДЕКСЫ.........   Найти похожие ветки 

 
Sable   (2004-02-05 00:50) [0]

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

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

Field1
Field2
Field3
Field4

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


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

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


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

Если самое главное "организовать быстрый поиск по любому набору полей", а на остальные отрицательные моменты наплевать, то "на все возможные комбинации". Причем достаточно
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


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

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


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

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


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

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

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

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

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


 
Sable_W   (2004-02-05 11:11) [6]

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:36) [7]

>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:41) [8]

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


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

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

... ?

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

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


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

to Johnmen

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

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


 
Johnmen   (2004-02-05 12:02) [11]

>Sable_W (05.02.04 11:58)

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

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


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

to Johnmen

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


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

>Sable_W (05.02.04 12:11)

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

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
11-6001
Angel_vv
2003-06-17 21:04
2004.03.03
Help!!! Как организовать сетевой досту к бд (dbf)?


1-6104
Гиричев Руслан
2004-02-20 18:05
2004.03.03
Как запретить работать XPManifest1?


1-6020
TUser
2004-02-19 12:07
2004.03.03
Breakpoint


1-6046
ARTOSHKA
2004-02-19 01:50
2004.03.03
Перехват панели часов


6-6170
Pantera111
2003-12-26 15:41
2004.03.03
Компонент GrabURL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский