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

Откуда: МО Электросталь
Сообщений: 5994
Написал в FAQ для начинающих статью по принципам индексов и их работе в связке с оптимизатором для ASA 9. Насколько я понимаю основные принципы одинаковые для всех РСУБД. Хотелось бы, чтобы коллеги, более разбирающиеся в принципах хранения и работы с индексами, пусть и в других СУБД, меня почитали и подсказали, где я неточно или неправильно мог написать информацию. Писать замечания лучше в этот топик.
26 авг 04, 11:02    [909240]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
Андрей Леонидович
Guest
ASCRUS !

Если индексы "являются полноценными данными", то:

а) к ним должен быть доступ в терминах модели данных;
б) приложение не будет работать без индексов, так же как оно не будет работать без базовых отношений (таблиц).

Поскольку при использовании РСУБД ни а) ни б) не выполняются, Вам не следует называть индексы "полноценными данными". Действительно, если, например, железнодорожный билет будет продаваться не за 1 минуту, а за один час, то это не значит (?), что приложение не работает. Оно просто работает медленнее, чем работало бы с индексами - только и всего (?).
В ОСУБД индексы действительно "являются полноценными данными".
Это замечание, конечно, не существенно для начинающих, к которым обращена Ваша статья, поэтому я его высказал здесь, а не в указанном Вами топике.
27 авг 04, 00:02    [912576]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Согласен с неточностью своего высказывания:
автор
Индексы являются полноценными данными и занимают место в базе данных на ее страницах.

Имелось ввиду, что индексы, так же, как и данные, храняться в БД на ее страницах, занимают место в базе данных и участвуют в кэшировании страниц. Уточнение в статье я не дал, так как вроде для РСУБД и так понятно, что такое индексы - вот что значит разные принципы разных технологий :) На выходные исправим ситуацию, спасибо за уточнение.
27 авг 04, 00:36    [912595]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
killed
Member

Откуда: Moscow
Сообщений: 3526
автор
Б. Составными, то есть индексировать по нескольким указанным полям. В таком случае очень важен порядок следования полей в индексе и при неправильном порядке вполне возможно, что этот индекс просто никогда не будет использоваться оптимизатором запросов. Составление таких индексов мы рассмотрим в данной статье чуть позже.


Это что имелось в виду? Что первым полем составного индекса должно выбираться поле таблицы, которое наиболее часто работает в запросах?

Или же речь идет о идет о выборе в качестве первого поля - столбца с максимальной селективностью? Тогда имхо это утверждение неверное.


JFYI
Если я не ошибаюсь, начиная с 9ки Оракл может использовать составной индекс без предиката в запросе на ведущий столбец индекса. Index Skip Scans


На кол-во уровней в индексе влияет размер страницы, длина используемых полей и разветвленность индекса

Смею утверждать (по меньшей мере для Оракла), что на практике "разветвленность" практически не влияет на кол-во уровней. Влияет и то ограниченно - общее кол-во проиндексированных строк


1. Первыми ставить поля, обладающие лучшей выборочностью индекса.
2. Первыми ставить поля, для которых будет меньшая разветвленность.

Да, вот про это я говорил в самом начале. Возможно тут есть какая-то специфика ASA, но для Оракла (да пожалуй и в голой теории) условие 1. имхо неверно.
Что такое "разветвленность" ? Количество разных значений в столбце? Если так, то аналогично, и я бы оба условия заменил на "с точки зрения составного индекса первым нужно выбирать поле, наиболее часто используемое на всем множестве запросов к этой таблице".
27 авг 04, 01:10    [912607]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Уважаемый ASCRUS!
Хотелось бы поконкретнее получить рекомендацию в киких случаях следует использовать кластерные индексы а в каких нет. Былоб очень интересно узнать Ваше мнение.

Еще на вскидку - интересная статейка: MDC
27 авг 04, 11:46    [913500]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
Nkulikov
Guest
Стоит отметить что MDC это скорее не индекс, это скорее физическая организация таблицы + индекс.
27 авг 04, 12:47    [913838]     Ответить | Цитировать Сообщить модератору
 Re: Покритикуйте плиз мою статью про индексы  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
автор
Уважаемый ASCRUS!
Хотелось бы поконкретнее получить рекомендацию в киких случаях следует использовать кластерные индексы а в каких нет. Былоб очень интересно узнать Ваше мнение.

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


P.S. Кстати лучше помнить, что это я писал равняясь на ASA. Не факт, что на том же MSSQL мой вывод окажется практичным.

автор
Еще на вскидку - интересная статейка: MDC

Спасибо за интересную ссылку.
27 авг 04, 14:10    [914309]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить