Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Артемов Д.В. -> "Microsoft SQL Server 2000" -> 83

Microsoft SQL Server 2000 - Артемов Д.В.

Артемов Д.В. Microsoft SQL Server 2000 — М.: Издательско-торговый дом «Русская Редакция», 2001. — 576 c.
ISBN 5-7502-0154-6
Скачать (прямая ссылка): artemov.pdf
Предыдущая << 1 .. 77 78 79 80 81 82 < 83 > 84 85 86 87 88 89 .. 187 >> Следующая


Далее выводится информация по индивидуальным шагам. Версия 7.0 выводила список начальных значений для диапазонов каждого

шага. Версия 8.0 выводит таблицу: RANGE_HI_KEY RANGE_ROWS EQ_ROWS
DISTINCT,
RANGE ROWS
AVGRANGEROWS

Верхнее зна- Число •
Число
Число уни-
Среднее число пов-

чение ключа записей
записей
кальных зна-
торяющихся зна-

в диапазоне в диапазоне
шага,
чений в диа-
чений в не


где зна-
пазоне,
включая верхнее


чение
включая
значение (вычис-


ключа
верхнее
ляется как


равно
значение
RANGE_ROWS /


верхнему в

DISTINCT_ RA-


диапазоне

NGE ROWS для




DISTINCT RA-




NGEROWS > 0)

10248 0.0
1.0
0
0.0

11076 827.0
1.0
827
1.0

11077 0.0
1.0
0
0.0

www.books-shop.com

228

Microsoft SQL Server 2000. Новейшие технологии

Команды DBCC INDEXINFO из версии 7.0 теперь нет, а жаль. Может, Service pack вернет ее нам.

В главе, посвященной административным утилитам для работы с SQL Server 2000, Вы найдете программу, позволяющую получить сведения об избирательности индексных ключей.

Возвращаясь к статистике, могу сказать, что в процессе реальной работы имеет смысл периодически анализировать статистику, которую сервер создал автоматически, и, возможно, создавать на ее основе постоянные индексы. Но как определить, насколько хороши имеющиеся индексы, не добавить ли новые и не удалить ли существующие? Для этого имеется специальный мастер по настройке индексов — Index Tuning Wizard.

Оптимизация индексов средствами Index Tuning Wizard

Рассмотрим запрос:

SELECT Employees.Country, Employees. LastName, Employees.FlrstName, Orders.ShippedDate, Orders.OrderID, [Order Subtotals]. Subtotal AS

SaleAmount

FROM Employees INNER JOIN

(Orders INNER JOIN [Order Subtotals] ON

Orders.OrderID = [Order Subtotals].OrderID)

ON Employees.EmployeeID = Orders.EmployeeID WHERE Orders.ShippedDate Between '07-18-96' And '12-12-97'

Запрос использует представление:

CREATE VIEW

[Order Subtotals] AS

SELECT [Order Details].OrderID,

Sum(C0NVERT(money, ([Order Details].UnitPrice«Quantity*(1-Discount)/

100))*100)

AS Subtotal

FROM [Order Details]

GROUP BY [Order Details].OrderID

Уничтожим все индексы на всех используемых таблицах и построим план исполнения.

Хочу сразу предупредить, что стоимость запроса и другие характеристики отражают ситуацию на моей машине и служат исключительно для иллюстрации. На Вашем компьютере результаты могут быть иными.

www.books-shop.com

ГЛАВА 3: Управление базами данных

При построении плана исполнения при полном отсутствии индексов оптимизатор оценивает стоимость исполнения запроса как 0.221.

Передав запрос на анализ Index Tuning Wizard, получаем такой план и стоимость запроса 0.175, это значит, что мастер по настройке индексов позволяет избежать экспериментов вслепую.

Нужно отметить, что на новом плане исполнения сканирование осталось только за одной таблицей, но она столь мала, что просто не может оказать какого-то существенного влияния на скорость исполнения запроса. Что же касается двух других таблиц, то для них были созданы индексы, которые оптимизатор успешно использовал.

Как же работать с мастером? Ему надо указать БД и сервер, на которой она расположена. В диалоговом окне есть два флажка keep al] existing indexes (Оставить все существующие индексы) и Add indexed Views (Добавить индексированные представления) и переключатель Tuning mode (Режим работы). Присутствие второго переключателя зависит от той редакции сервера, с которой Вы работаете. Корпоративная редакция и редакция для разработчика поддерживают индексированные представления. В таком важном деле, как оптимизация производительности, спешка ни к чему, поэтому я рекомендую снять первый флажок и пометить третий переключатель Thorough (Тщательно). Это позволит мастеру рассмотреть, стоит ли удалять существующие индексы и заставит тщательнее выполнить анализ возможных вариантов

Рис. 3-29. Здесь Вы указываете, откуда будет взята информация для анализа.

www.books-shop.com

230

Microsoft SQL Server 2000, Новейшие технологии

Следующее окно мастера позволяет указать, есть ли предмет для обсуждения. Дело в том, что мастер способен что-то предложить, только если ему хватает информации. Исходным материалом может быть либо сценарий в виде файла, либо записанная

трассировка средствами SQL Profiler, о котором мы говорили выше (рис. 3-29). Третий вариант появился в версии 8.0. Если вызвать мастер из Query Analyzer, когда там выделен текст запроса, мастер сможет использовать его. Имейте ввиду, что для работы мастера из среды Query Analyzer, Вам нужно обладать привилегиями роли Sysadmin. При выборе двух вариантов Вам тут же предложат указать

файл нагрузки для первого переключателя, или зарегистрироваться на сервере и указать мастеру имя таблицы, в которой сохранен профиль трассировки. Выберем третий переключатель.
Предыдущая << 1 .. 77 78 79 80 81 82 < 83 > 84 85 86 87 88 89 .. 187 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100