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

Откуда:
Сообщений: 20
Скажите пожалуйста, в каких случаях некластеризованный индекс является более предпочтительным и работает быстрее, чем кластеризованный для данного поля?
Чем я должен руководствоваться выбирая тип индекса.
Спасибо.
5 сен 11, 18:23    [11230641]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
А что вы собираетесь делать, если выяснится, что вам предпочтительнее иметь кластерный индекс для двух и более полей?
5 сен 11, 18:27    [11230660]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Ergot
Member

Откуда:
Сообщений: 20
Гавриленко Сергей Алексеевич,

А в чем проблема?
5 сен 11, 18:46    [11230719]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ergot
Гавриленко Сергей Алексеевич,

А в чем проблема?
Я описался, и читать вопрос надо как "А что вы собираетесь делать, если выяснится, что вам предпочтительнее иметь кластерный индекс для двух и более индексов?"
5 сен 11, 18:49    [11230727]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Ergot, Полезно ознакомиться.
5 сен 11, 18:51    [11230732]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Ergot
Member

Откуда:
Сообщений: 20
Гавриленко Сергей Алексеевич
Ergot
Гавриленко Сергей Алексеевич,

А в чем проблема?
Я описался, и читать вопрос надо как "А что вы собираетесь делать, если выяснится, что вам предпочтительнее иметь кластерный индекс для двух и более индексов?"


То есть?
5 сен 11, 18:58    [11230740]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ergot
То есть?
Сходите, попробуйте сделать два кластерных индекса на таблицу. Потом расскажете, что получилось.
5 сен 11, 19:14    [11230797]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Ergot
Member

Откуда:
Сообщений: 20
Гавриленко Сергей Алексеевич
Ergot
То есть?
Сходите, попробуйте сделать два кластерных индекса на таблицу. Потом расскажете, что получилось.

То, что кластеризованный индекс может быть создан только один, мне известно, например.
5 сен 11, 19:29    [11230857]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Коляныч
Member

Откуда:
Сообщений: 279
Ergot
Скажите пожалуйста, в каких случаях некластеризованный индекс является более предпочтительным и работает быстрее, чем кластеризованный для данного поля?

Например, если он будет располагаться в файлгруппе, находящейся на более быстром диске и будет включать в себя все колонки, запрашиваемые в неком запросе.
5 сен 11, 20:03    [11230923]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Коляныч
Member

Откуда:
Сообщений: 279
UPD: то есть это ответ был не на "Выбор типа индекса", а просто пример, когда поиск по некластерному индексу может обогнать поиск по кластерному (если кластеризовано по тому же полю)
5 сен 11, 20:09    [11230941]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Коляныч,

полагаю вопрос изначально должен включать фразу "при прочих равных". А то этак мы начнем мерять индексы для разных запросов. А потом и из разных таблиц.
Так вот с такой оговоркой мне известен лишь частный случай для произвольного (но, как и договорились, одного и того же) запроса когда НЕ Клас. индекс столь же эффективен как и клас. - покрывающий индекс. В общем случае не клас. будет всегда медленнее - сказывается "двухфазный" алгоритм поиска по нему.
6 сен 11, 11:26    [11232926]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
http://stackoverflow.com/questions/2267326/how-to-choose-the-clustered-index-in-sql-server
6 сен 11, 11:35    [11233012]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
Коляныч
Member

Откуда:
Сообщений: 279
SamMan
Коляныч,

полагаю вопрос изначально должен включать фразу "при прочих равных". А то этак мы начнем мерять индексы для разных запросов. А потом и из разных таблиц.
Так вот с такой оговоркой мне известен лишь частный случай для произвольного (но, как и договорились, одного и того же) запроса когда НЕ Клас. индекс столь же эффективен как и клас. - покрывающий индекс. В общем случае не клас. будет всегда медленнее - сказывается "двухфазный" алгоритм поиска по нему.


Да, я знаю, что это просто частный случай. Просто топикстартер спросил в каких случаях предпочтителен и работает быстрее, вот один из вариантов, когда может работать быстрее и пришёл в голову. А насколько предпочтителен тот или иной можно сказать, только зная предметную область и предполагаемые в будущем запросы.

Например, по какому принципу расставить книжки в домашней библиотеке? По названию? По автору? По цвету переплёта? По дате издательства? По дате покупки в магазине? По идентификационному номеру? По толщине?.... При выборе разных вариантов расстановки книг разные типы запросов будут работать по разному: "найти все книги Пушкина", "найти все книги, изданные в 80-х годах", "Вернуть двадцать последних купленных книжек", "вывести количнство книг, в которых больше трёхсот страниц" и т.п.
6 сен 11, 17:46    [11236690]     Ответить | Цитировать Сообщить модератору
 Re: Выбор типа индекса  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Коляныч
А насколько предпочтителен тот или иной можно сказать, только зная предметную область и предполагаемые в будущем запросы.


Именно! Поэтому нет "хороших" и "плохих" индексов, будь они хоть трижды (не-)кластерные. А есть индексы уместные для данного конкретного запроса. И НЕ уместные для него же.
6 сен 11, 18:04    [11236901]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить