Поделиться через


Почему события не настраиваются

В этом подразделе изложены общие причины того, почему события не настраиваются, а также каким образом помощник по настройке ядра СУБД выбирает правильную базу данных, для которой нужно запустить настройку событий.

Распространенные причины того, почему события не настраиваются

Если предположить, что база данных, для которой изначально было выполнено событие, определена верно (см. следующий раздел), то события не настраиваются в следующих случаях:

  • Если они ссылаются на таблицы, которые не были выбраны для настройки.

  • Если они ссылаются на маленькие таблицы (менее 10 страниц).

ПримечаниеПримечание

Число страниц в таблице для Microsoft SQL Server 2000 можно найти в столбце dpages системной таблицы sysindexes. Число страниц в таблице для Microsoft SQL Server 2005 и более поздних версий, можно найти в столбце used_page_count представления каталога sys.dm_db_partition_stats.

  • Если помощнику по настройке ядра СУБД недостаточно времени, отведенного пользователем на настройку запроса.

  • Если они ссылаются на таблицы, количество индексов в которых близко к максимальному, и существующие индексы сохраняются. В этом случае новые индексы добавлять нельзя.

  • Многие инструкции языка DML, например INSERT, UPDATE и DELETE, применяются к таблице, которая является для события базовой. При добавлении большего числа индексов или индексированных представлений производительность такой таблицы может упасть.

  • Если заданы следующие параметры настройки:

    • ограничено максимальное число столбцов;

    • недостаточно места на диске хранения; или когда в базе данных слишком много индексов и индексированных представлений, а для настройки отведено недостаточно места на диске.

      ПримечаниеПримечание

      Место на диске, отведенное для рекомендаций настройки, можно задать в диалоговом окне Дополнительные параметры настройки в графическом интерфейсе помощника по настройке ядра СУБД, а также с помощью программы командной строки dta с аргументом -B.

Определение нужной базы данных для настройки событий помощником по настройке ядра СУБД

Помощник по настройке ядра СУБД выбирает базу данных, в которой следует запустить настройку событий в зависимости от типа файла рабочей нагрузки настройки, а также от параметров, заданных при настройке рабочей нагрузки. Выбор происходит следующим образом.

Выбор файлов сценариев SQL (SQL) в качестве рабочей нагрузки для настройки

  • Если имя базы данных задано одним из следующих способов:

    • аргумент -d программы командной строки dta;

    • элемент DatabaseToConnect входного XML-файла.

    Эти аргументы задают базу данных по умолчанию, к которой в первую очередь подключится помощник по настройке ядра СУБД после начала сеанса настройки. Затем помощник по настройке ядра СУБД изменяет контекст базы данных для последующих инструкций с помощью всех инструкций USE database_name в сценарии.

  • Если начальное подключение для сеанса настройки не задано явно, то помощник по настройке ядра СУБД будет применять базу данных по умолчанию, заданную для имени входа, под которым на сервере выполняется настройка. После первоначального подключения помощник по настройке ядра СУБД изменяет контекст базы данных для последующих инструкций точно так же, как если бы начальное подключение было задано явно. Помощник по настройке ядра СУБД определяет контекст базы данных с помощью инструкций USE database_name.

Выбор файлов трассировки (TRC) в качестве рабочей нагрузки для настройки

При использовании файлов трассировки помощник по настройке ядра СУБД выбирает базу данных, в которой следует запускать события, для каждого SPID, указанного в трассировке. Если SPID в трассировке не указан, то помощник по настройке ядра СУБД будет считать его одинаковым для всех событий в трассировке. Помощник по настройке ядра СУБД выбирает базу данных для каждого SPID следующим образом.

  1. DatabaseName в трассировке присутствует.

    Если в файле трассировки есть поле DatabaseName, то помощник по настройке ядра СУБД определяет базу данных, для которой с ее помощью следует анализировать событие. Все прочие сведения не учитываются. Если поле DatabaseName отсутствует, помощник по настройке ядра СУБД переходит к шагу 2.

  2. DatabaseID в трассировке присутствует, а DatabaseName — отсутствует.

Если в файле трассировки присутствует поле DatabaseID, то помощник по настройке ядра СУБД определяет базу данных, для которой с ее помощью следует анализировать событие. Поле DatabaseID сопоставляется с именем базы данных. Однако помощник по настройке ядра СУБД не проверяет наличие изменений в полях DatabaseID с момента сбора трассировки. Если пользователь не уверен в правильности сопоставления DatabaseID с DatabaseName, следует удалить поле DatabaseID из файла трассировки рабочей нагрузки. Все прочие сведения не учитываются. Если оба поля отсутствуют, помощник по настройке ядра СУБД перейдет к шагу 3.

  1. Ни DatabaseName ни DatabaseIDв трассировке не присутствует.

    Если в трассировке отсутствует как DatabaseID, так и DatabaseName, помощник по настройке ядра СУБД определит базу данных для запуска события так же, как для файлов сценариев SQL в качестве файлов рабочей нагрузки настройки. Этот процесс описан в предыдущем подразделе «Выбор файлов сценариев SQL (SQL) в качестве рабочей нагрузки для настройки».