Ограничение продолжительности и событий настройки
Управлять сеансами настройки помощника по настройке ядра СУБД можно посредством ограничения времени настройки приложения или посредством ограничения числа настраиваемых событий. Ограничения продолжительности анализа настройки полезно использовать, когда требуется настроить рабочий сервер во время обслуживания. Ограничение числа настраиваемых событий полезно при сравнении двух гипотетических конфигураций путем настройки одинаковой рабочей нагрузки для каждой из них.
Помощник по настройке ядра СУБД не обязательно должен настраивать все события рабочей нагрузки для любой из данных конфигураций. Если указать число настраиваемых событий, то в сеансе настройки будет учитываться одинаковое число настраиваемых событий для каждой из конфигураций, чем будет обеспечена лучшая сравнимость результатов.
Управление продолжительностью настройки
Помощник по настройке ядра СУБД производит анализ рабочей нагрузки до тех пор, пока не найдет оптимальный набор физических структур производительности, возможных для заданной базы данных. Занимаемое этим процессом время зависит от длины рабочей нагрузки. Для завершения тщательного анализа рабочей нагрузки, содержащей сотни событий, помощнику по настройке ядра СУБД может потребоваться несколько суток. Хотя во время анализа базы данных будут доступны, производительность может ухудшиться.
Для управления длительностью анализа рабочей нагрузки помощником по настройке ядра СУБД необходимо задать максимальное время. Максимальное время в часах и минутах определяет желаемую продолжительность анализа рабочей нагрузки помощником по настройке ядра СУБД. Результатом параметра максимального времени является рекомендация наилучшего решения, которое может быть принято помощником по настройке ядра СУБД до истечения заданного времени.
В графическом интерфейсе пользователя помощника по настройке ядра СУБД данный параметр по умолчанию имеет значение 1 час. В программе командной строки dta установленный по умолчанию предел равен 8 часам. Если завершение анализа требует меньшего времени, чем установлено ограничением, настройка будет остановлена по завершении анализа. Для формирования лучшей из рекомендаций, возможной в интерфейсах обоих инструментов, можно указать неограниченное время настройки.
В следующих подразделах описан порядок задания этого параметра настройки в графическом интерфейсе пользователя и в командной строке.
Задание времени настройки в графическом интерфейсе пользователя
Чтобы задать ограничение времени настройки с помощью графического интерфейса пользователя помощника по настройке ядра СУБД, необходимо установить флажок Ограничить время настройки на вкладке Параметры настройки, а затем задать дату и время для параметра Остановить.
Учитывается следующее:
Обычно, если указать более долгий период настройки, общие результаты будут лучше, так как будет проанализирован больший объем рабочей нагрузки. Рекомендации основываются на более полных сведениях.
По умолчанию максимальный предел времени настройки равен 1 часу.
Для указания неограниченного времени настройки необходимо снять флажок Ограничить время настройки.
Задание времени настройки в программе командной строки dta
Чтобы задать предел времени настройки с помощью программы командной строки dta, необходимо указать значение аргумента -A. Например, рассмотрим следующую команду dta:
dta -E -s MySession -D AdventureWorks -if MyWorkloadScript.sql -fa IDX -A 120
где -E указывает доверительное соединение, -D указывает базу данных, подлежащую настройке, -if указывает файл рабочей нагрузки, -fa IDX указывает, что помощник по настройке ядра СУБД должен лишь добавить индексы в свои рекомендации, а -A 120 означает, что настройка должна быть завершена в течение 120 минут.
При выполнении программы dta из командной строки (вместо ее вызова в сценарии автоматической настройки) для остановки настройки нажмите клавиши CTRL+C. Помощник по настройке ядра СУБД выдаст рекомендации по наилучшему использованию, исходя из объема рабочей нагрузки, отработанной на этот момент.
Учитывается следующее:
Обычно, если указать более долгий период настройки, общие результаты будут лучше, так как будет проанализирован больший объем рабочей нагрузки. Поэтому рекомендации основываются на более полных сведениях.
Чтобы указать настройку без ограничения времени, используйте аргумент командной строки –A 0. Этот аргумент используется для получения наилучших рекомендаций для всего объема рабочей нагрузки.
Если параметр –A не указан, используется значение по умолчанию –A 480 (время настройки — 8 часов).
Даже при нажатии клавиш CTRL+C программе dta может потребоваться некоторое время для заполнения отчетов об анализе, прежде чем она завершит свою работу.
Задание времени настройки во входном XML-файле
Максимальное время настройки можно задать также во входном XML-файле, который используется с программой командной строки dta. Для указания во входном XML-файле предельного времени настройки в минутах воспользуйтесь вложенным элементом TuningTimeInMin родительского элемента TuningOptions. Дополнительные сведения о входных XML-файлах см. в разделе Справочник по входным XML-файлам (помощник по настройке ядра СУБД).
Управление числом настраиваемых событий
Пользователь имеет возможность управлять числом событий в рабочих нагрузках, настраиваемых помощником по настройке ядра СУБД. Этот параметр доступен только из программы командной строки dta, с помощью аргумента –n. Работа программы dta при использовании аргумента -n зависит от значения, указанного для аргумента -A, который задает предел времени настройки следующими образом:
Программа dta прекращает работу после выполнения настройки указанного числа событий или после окончания указанного времени настройки, в зависимости от того, какое из этих условий выполняется первым. Если аргумент -n не указан, то по умолчанию программа dta производит настройку по всем событиям в рабочей нагрузке. Если не указан аргумент -A, то программа dta по умолчанию принимает предельное время настройки, равное 8 часам.
Для обеспечения настройки числа событий, задаваемого аргументом -n, рекомендуется установить значение 0 для аргумента -A, который задает неограниченное время настройки. Например -n 250 -A 0.
Указание числа настраиваемых событий во входном XML-файле
Число событий для настройки можно задать также во входном XML-файле, который используется с программой командной строки dta. Для указания во входном XML-файле числа настраиваемых событий воспользуйтесь вложенным элементом NumberOfEvents родительского элемента TuningOptions. Дополнительные сведения о входных XML-файлах см. в разделе Справочник по входным XML-файлам (помощник по настройке ядра СУБД).
Оптимальные методики ограничения времени и числа настраиваемых событий
Ниже приведены рекомендации по ограничению времени и числа настраиваемых событий.
Для единичных запросов и малых рабочих нагрузок (менее 100 событий) задайте неограниченное время настройки. Установка неограниченного времени настройки позволяет получить наилучшие рекомендации помощника по настройке ядра СУБД, а настройка в большинстве случаев завершается в относительно короткий период времени.
Для больших рабочих нагрузок (более 100 событий) попробуйте выполнить следующие операции в том порядке, в котором они перечислены. К последней операции (4) следует переходить только после выполнения первых трех.
Если пользователь ограничен во времени, задайте предел времени настройки.
Если настройка фиксированного числа событий дает адекватный результат (например первые 10 000 событий могут репрезентативно представлять оставшуюся часть рабочей нагрузки), воспользуйтесь программой командной строки dta и укажите число событий с помощью аргумента –n.
Если при использовании программы командной строки dta необходимо ограничить время настройки, можно воспользоваться обоими аргументами, –A и –n. Например, если указать -A 240 и –n 1000, то помощник по настройке ядра СУБД закончит работу после настройки 1 000 событий или по истечении 4 часов — в зависимости от того, что произойдет раньше.
Время, затрачиваемое на настройку, зависит от сложности запросов (числа таблиц, к которым приходится обращаться), от выбранного набора характеристик (настройка индексированных представлений занимает больше времени, чем настройка индексов), а также от размера данных (для создания статистики). Как правило, большая часть времени настройки затрачивается помощником по настройке ядра СУБД на обращение к оптимизатору запросов. При определении времени, выделяемого помощнику по настройке ядра СУБД на настройку, используется следующее простое правило.
Для простых запросов, обращающихся к одной, двум или трем таблицам, выделите около 1 секунды на запрос при настройке только индексов и около 10 секунд на запрос при настройке индексов и индексированных представлений. Для сложных запросов, обращающихся более чем к трем таблицам, выделите около 10 секунд на запрос при настройке только индексов и около 100 секунд на запрос при настройке индексов и индексированных представлений.
Если помощник по настройке ядра СУБД показывает, что 100 % рабочей нагрузки выработано, это означает, что вся рабочая нагрузка была проанализирована, но необязательно настроена. Чтобы узнать, была ли произведена настройка всей рабочей нагрузки, необходимо поискать в конце журнала настройки следующее сообщение:
All events in the workload were not tuned. Consider increasing time bound or specify number of events to be considered in the input XML.
Наличие такого сообщения в конце журнала настройки означает, что помощнику по настройке ядра СУБД не удалось выполнить настройку всей рабочей нагрузки. Для решения данной проблемы необходимо задать более длительное время настройки. Для гарантированного выполнения настройки всех событий в рабочей нагрузке следует установить неограниченное время настройки. Если параметр неограниченного времени настройки не установлен, помощник по настройке ядра СУБД будет пытаться выполнить настройку наибольшего числа событий, выполнение которого возможно в указанное время.
Примечание Между режимами «Быстрый», «Средний» и «Тщательный» в мастере настройки индексов MicrosoftSQL Server 2000 и аргументами –A и –n помощника по настройке ядра СУБД нет прямой зависимости. Как правило, если выполнение настройки в одном из режимов («Быстрый», «Средний» и «Тщательный») в SQL Server 2000 занимает определенное время, то при использовании помощника по настройке ядра СУБД SQL Server 2005 в течение такого же времени будут получены аналогичные или лучшие рекомендации. При работе в режиме «Тщательный» рекомендуется использовать помощника по настройке ядра СУБД с неограниченным временем настройки и неограниченным числом настраиваемых событий в рабочей нагрузке.
Дополнительные методы ограничения продолжительности настройки
Помимо ограничения времени исполнения с помощью помощника по настройке ядра СУБД, пользователь имеет возможность настроить только подмножество таблиц в базе данных.
Кроме того, доступны следующие функции:
сохранение всех существующих физических структур (PDS);
сохранение только индексов;
сохранение только кластеризованных индексов.
В окончательную рекомендацию помощник по настройке ядра СУБД включает все подсказки индексов или подсказки в запросе, даже если индекс не оптимален для таблицы. Индексы других таблиц, упомянутых в запросе, могут быть предложены и включены в рекомендацию. Однако в окончательную рекомендацию всегда будут включены все индексы, указанные в качестве подсказок. Подсказки могут помешать помощнику по настройке ядра СУБД в выборе лучшего плана выполнения. Перед анализом рабочей нагрузки рекомендуется удалить из запросов все подсказки индексов.