И снова об индексах

Genady
Дата: 23.02.2001 15:58:40
Так сказать в продолжение темы об индексах.
Мне с этими проблемами практически сталкиваться не приходится, т. к. я разработчик.
Так вот, я продолжил эксперименты с индексами и получил результат, который меня слегка удивил, хотя возможно что исследования так и надо проводить несколько раз, прежде чем решить нужен индекс или нет.
Я создал табличку create table TableEx(ID int identity constraint PK_ID primary key (ID), Row float, String varchar(50)), загнал в нее 1500000 значений, в поле String имеет всего 4 уникальных значения.

На запрос select sum(Row), String from table group by String напустил index tuning wizard
Он посоветовал создать некластерный индекс на полях Row и String

В profilere сделал замеры длительность выполнения запроса без индекса - 11036, с индексом 16043, этот же индекс, только кластерный - 4666
с уже существующем идексом запустил еще раз ITW он возвратил:

No indexes were recommended for one of the following reasons:
1. The tables consisted of less than 10 data pages.
2. Supporting indexes already exist.
3. Only a clustering index would have improved performance.

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

Так вот вопрос: выходит с ITW надо работать по принципу доверяй, но проверяй?
Александр Гладченко
Дата: 23.02.2001 16:15:15
Не поленюсь повторить...
Вот цитата из рассылки:
Что быстрее: индексный доступ или сканирование таблицы? Дюзан Петковик. Несколько советов, основанных на глубоком анализе механизма работы SQL Server, которые позволяют повысить производительность баз данных.
http://www.osp.ru/win2000/sql/2000/02/205.htm
Об индексах в рассылке писалось неоднократно, весь архив тут:
MS SQL Server - дело тонкое...
Genady
Дата: 23.02.2001 16:37:35
Да нет, дело не в этом, я вероятно неправильно сформулировал топик.

Вопрос вобщем не в том, какой индекс лучше и когда, вопрос в том насколько можно доверять ITW?
Лично у меня складывается ощущене, что использовать нужно, но только в связке с profiler-ом, т. е. результат обязательно нужно проверять.
Да, вот, вспомнил фразу инструктора на курсах по оптимизации, он сказал, что если все работает и недовольных пока нет, то незачем ничего оптимизировать, а то недовольные могут внезапно появиться
Александр Гладченко
Дата: 23.02.2001 19:08:21
Дык, статья как раз про это... Заголовок слегка дезориентирует, но основная мысль о том, что очевидные вещи и без того понятны (даже без ITW) а когда ясности нет, поможет только батюшка эксперимент. Хотя в сложных случаях, на ITW стоит пологаться в большей степени.
Но есть ещё одна, другая сторона этой медали (о которой недавно было в рассылке), это то, что полезность индекса величина во времени не постоянная. То, чем сегодня юзеры довольны, завтра может стать для вас сущим адом. Поэтому, иногда, советы ITW бывают не столь очевидными (он то про это знает, но молчит).