Регистрация

Index

Готовим статьи для FAQ

Статье быть?

да
8
100%
нет
0
Голосов нет
 
Всего голосов : 8
Старожил
Аватара пользователя
Сообщения: 26
Зарегистрирован: Вт мар 07, 2006 8:36 am
Откуда: Алматы

Index

Сообщение Evgeniy » Вт авг 15, 2006 8:34 am

Не нашел тут статьи про индексы.
Это хрустно. Поэтому начинаю готовить статью. 8)

Первый вопрос такой - "несколько индексов за раз?" :o

Прогресс сам может подцепить более одного индекса в выборке, а программист посредствам use-index может указать только один индекс?

Второй вопрос "составные индексы - зло?" :sad:

На много ли составные индексы дают больше выигрыша, чем несколько одинарных?

ведь, IMHO
1) содержать и пересчитывать составной индекс - более ресурсоёмкое занятие, чем содержание несколько простых?
2) несколько простых индексов предоставят большую гибкость их использования при составлении запросов.
=> IMHO, составные индексы должны быть крайне редки...

Старожил
Сообщения: 448
Зарегистрирован: Пт июл 27, 2001 4:00 am
Откуда: Москва

Re: Index

Сообщение bulklodd » Вт авг 15, 2006 10:32 am

Evgeniy писал(а):Не нашел тут статьи про индексы.
Это хрустно. Поэтому начинаю готовить статью. 8)

Первый вопрос такой - "несколько индексов за раз?" :o

Прогресс сам может подцепить более одного индекса в выборке, а программист посредствам use-index может указать только один индекс?

Второй вопрос "составные индексы - зло?" :sad:

На много ли составные индексы дают больше выигрыша, чем несколько одинарных?

ведь, IMHO
1) содержать и пересчитывать составной индекс - более ресурсоёмкое занятие, чем содержание несколько простых?
2) несколько простых индексов предоставят большую гибкость их использования при составлении запросов.
=> IMHO, составные индексы должны быть крайне редки...


Статья про индексы доступна здесь, как и ответы на твои вопросы

http://www.bulklodd.ru/ksvedit2/articles/dbarch.htm

Старожил
Аватара пользователя
Сообщения: 175
Зарегистрирован: Пн авг 20, 2007 7:40 am
Откуда: Алматы, Казахстан

Сообщение Старожыл » Чт янв 31, 2008 8:32 am

мне кажется однозначно - статье быть!
bulklodd писал(а):Статья про индексы доступна здесь

мне кажется корректнее было бы написать: "Статья про индексы доступна там" :roll:
私は進歩のデータベースの管理者である。

Старожил
Аватара пользователя
Сообщения: 2871
Зарегистрирован: Ср май 12, 2004 6:03 pm
Откуда: Питер

Re: Index

Сообщение George » Чт янв 31, 2008 11:00 am

Evgeniy писал(а):Прогресс сам может подцепить более одного индекса в выборке,

При условии, что все компоненты этих индексов задействованы в выборке в условии на равенство.
а программист посредствам use-index может указать только один индекс?

Да, конструкцией use-index можно навязать Progress'у только один индекс.
На много ли составные индексы дают больше выигрыша, чем несколько одинарных?

Результат очень сильно зависит от распределения значений индексных ключей.
1) содержать и пересчитывать составной индекс - более ресурсоёмкое занятие, чем содержание несколько простых?

Нет, почему же? Если меняется только одно поле, то изменения индексного дерева будут сделаны как в составном индексе так и в однокомонентном. "Ресурсозатратность" такой перестройки будет одинаковая в обоих случаях. Если меняются два поля и к тому же в одном операторе ASSIGN, то дерево составного индекса будет изменено только один раз. Но при этом пришлось бы перестраивать два однокомонентных индекса.
2) несколько простых индексов предоставят большую гибкость их использования при составлении запросов.

Не всегда. Например, для условий типа field1 eq "A" AND field2 GT "B1" AND field2 LT "B2" эффективнее составной индекс.

Старожил
Аватара пользователя
Сообщения: 2871
Зарегистрирован: Ср май 12, 2004 6:03 pm
Откуда: Питер

Re: Index

Сообщение George » Чт янв 31, 2008 11:05 am

bulklodd писал(а):Статья про индексы доступна здесь

По ссылке получаем: "этот домен возможно продается"

Старожил
Аватара пользователя
Сообщения: 1016
Зарегистрирован: Чт авг 04, 2005 5:19 pm
Откуда: Pennsylvania, USA

Сообщение dmitri » Чт янв 31, 2008 11:08 pm

Самое веселое это когда при прочих равных индекс выбирается в алфавитом порядке имени. Это означает когда строится индекс не надо забывать что назвав его с буквы "a" означает что он скорее будет выбран, чем если назвать его с буквы "z" :)

Индексы должны выбираться на основании статистики данных, а не в момент компиляции программы. Но пока об этом можно только мечтать. Dynamic Query не в счет. Их индексы по тем же правилам выбираются, но только при выполнении программы.

Старожил
Сообщения: 150
Зарегистрирован: Сб дек 09, 2006 1:16 pm
Откуда: Минск, Беларусь

Сообщение webber » Чт фев 07, 2008 2:23 pm

Есть такое...

Мы вот в итоге пришли к тому, что в большинстве случаев подсказываем PROGRESSу правильный индекс use-indexом, хоть это и типа идеологически некорректно :lol:
В ряде случаем выигрыш в скорости в 40-50 раз...

Вот все собираюсь пару примерчиков как-нибудь ораклу скормить, потому что не верится мне что-то что так все у них хорошо как в маркетинговых материалах...
Генерил как-то схожие данные, на которых тупил прогрессовый движок, и тестил на InterBase, MySQL и MSSql - тупили все одинаково...
В ряде случаев для выбора индекса просто требуются не статистические данные, а скорей лексические...

Вернуться в СТАТЬИ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1