Так как же использовать этот ITW ?

Glory
Дата: 07.03.2001 10:53:10
Привет всем !

Объясните, как же он все-таки работает ???

-Берем 2 таблицы, без индексов.
-Составляем 40 типовых запросов (в скрипте).
-Включаем Profiler с записью результатов а файл.
-Запускаем запросы.
-На полученную трассу натравливаем ITW (с опцией наиболее глубокого исследования).
-Строим рекомендованные им индексы для таблиц.
-Снова включаем Profiler с записью результатов в ДРУГОЙ файл
-Запускаем ТЕЖЕ САМЫЕ запросы.
-На новую полученную трассу натравливаем ITW (с такими же опциями как и в первый раз).... и получаем СОВЕРШЕННО ДРУГИЕ РЕКОМЕНДАЦИИ, при этом ITW рекомендует удалить 90% старых индексов, включая кластерные, которые он советовал создать в первый раз!!!!
И кто же он после этого ???
Дед Маздай
Дата: 09.03.2001 00:15:49
Во 2-м случае данные в обоих таблицах не менялись по ср-ю с 1-м?
Glory
Дата: 09.03.2001 09:56:30
В том то и дело, что нет - не менялись данные. Все это происходило в течении 2-х суток, просто жаль потерянного зря времени
Glory
Дата: 09.03.2001 16:10:39
В том то и дело, что нет - не менялись данные. Все это происходило в течении 2-х суток, просто жаль потерянного зря времени
Alexander_Rudenko
Дата: 09.03.2001 16:51:50
А ты эти запросы из QA запускаешь или из хранимой процедуры?
Glory
Дата: 09.03.2001 16:59:37
Из QA запускаю скрипт файл, в котором явно записаны запросы.
Александр Гладченко
Дата: 11.03.2001 12:41:40
Не вижу в этом ничего удивительного. Если это вновь созданные таблицы или статистика по ним устарела или не создавалась, так и должно было получиться. ITW учитывает не только результаты трассировки, но и статистику, которая должна была измениться.
Кроме того, у ITW существуют физические ограничения, превышение которых может давать сильное расхождение в результатах (об этом писалось в последних номерах рассылки).
Ещё одним фактором, который Вы должны учитывать, это само состояние сервера в момент трассировки. Для корректного сравнения необходимо обеспечить одинаковые условия.
Glory
Дата: 12.03.2001 10:25:08
Да, действительно, после первого раза, ITW посоветовал создать статистику, которой до этого у таблиц не было вообще. Но тогда получается, что ВСЕГДА сразу же за первой настройкой на "чистых" таблицах необходимо запускать вторую, т.к. вновь полученная статистика может в корне повлиять на решения ITW? И сколько раз подряд нужно тогда запускать трассировку и ITW для того, чтобы получить достачно достоверные рекомендации ?

Отступление
Тут надо упомянуть, что этот вопрос волнует меня больше с практической стороны - как сделать правильно, а не почему это правильно, т.к. база у меня доволно большая, поэтому трассировки и построения(и удаление) индексов занимают по нескольку часов. Хочеться оптимизировать свое время(и сервера тоже)
Александр Гладченко
Дата: 12.03.2001 15:56:03
Я уже упоминал, что структура индексов зависит от объёма данных. Приймите для себя, как правило, с некоторой периодичностью напускать на ваши таблицы ITW и подправлять индексы. Заодно, следите, насколько актуальна у Вас статистика. Здесь на SQL сервер полностью полагаться нельзя.