Программа dta

Программа dta — это версия помощника по настройке ядра СУБД для командной строки. Программа dta предназначена для использования функций помощника по настройке ядра СУБД в приложениях и сценариях.

Как и помощник по настройке ядра СУБД, программа dta производит анализ рабочей нагрузки и выдает рекомендации по изменению структур физического проектирования для улучшения производительности сервера при данной рабочей нагрузке. Рабочей нагрузкой может выступать файл трассировки приложения SQL Server Profiler, таблица или сценарий Transact-SQL. Структуры физического проектирования включают в себя индексы, индексированные представления и секционирование. После проведения анализа рабочей нагрузки программа dta выдает рекомендации по изменению физической структуры баз данных и может сформировать необходимый сценарий для внесения этих изменений. Рабочие нагрузки могут быть заданы из командной строки с помощью аргумента -if или -it. Можно также назначить входной XML-файл из командной строки с помощью аргумента -ix. В этом случае рабочая нагрузка указывается во входном XML-файле.

Синтаксис


            dta
                    [ -? ] |
     [
          [ -S server_name[ \instance ] ]
          {
              { -U login_id [-P password ] }
              | –E             }
              { -D database_name [ ,...n ] }
                  [-d database_name ] 
                  [ -Tl table_list | -Tf table_list_file ]
              { -if workload_file | -it workload_trace_table_name }
              { -ssession_name | -IDsession_ID }
                  [ -F ]
                          [ -of output_script_file_name ]
                          [ -or output_xml_report_file_name ]
                          [ -ox output_XML_file_name ]
                          [ -rl analysis_report_list [ ,...n ] ]
                          [ -ix input_XML_file_name ]
                          [ -A time_for_tuning_in_minutes ]
                          [ -n number_of_events ]
                  [ -m minimum_improvement ]
                          [ -fa physical_design_structures_to_add ]
                          [ -fi ]
                          [ -fp partitioning_strategy ]
                          [ -fk keep_existing_option ]
                          [ -fx drop_only_mode ]
                  [ -B storage_size ]
                  [ -c max_key_columns_in_index ]
                  [ -C max_columns_in_index ]
                          [ -e | -e tuning_log_name ]
                          [ -N online_option]
                          [ -q ]
                        [ -u ]
                       [ -x ]
                       [ -a ]
     ]

Аргументы

  • -?
    Отображает сведения об использовании.

  • -Atime_for_tuning_in_minutes
    Задает предел времени настройки в минутах. Программа dta использует указанное время для настройки рабочей нагрузки и создания сценария рекомендованных изменений физических структур. По умолчанию dta предполагает время настройки, равное 8 часам. Указание значения 0разрешает неограниченное время настройки. Программа dta должна закончить настройку всей рабочей нагрузки до истечения лимита времени. Тем не менее, чтобы обеспечить настройку всей рабочей нагрузки, рекомендуется установить неограниченное время настройки (-A 0).

  • -a
    Производит настройку рабочей нагрузки и применяет рекомендации без запроса на подтверждение.

  • -Bstorage_size
    Задает максимальный размер пространства в мегабайтах, которое может быть использовано при рекомендованном индексировании и секционировании. При настройке нескольких баз данных учитываются рекомендации по пространству всех баз данных. По умолчанию dta предполагает использование наименьшего размера хранилищ из следующих:

    • троекратный текущий размер необработанных данных, включая общий размер куч и кластеризованных индексов в таблицах базы данных;

    • свободное место на всех прикрепленных дисках плюс объем необработанных данных.

    Размер хранилища по умолчанию не включает некластеризованные индексы и индексированные представления.

  • -Cmax_columns_in_index
    Задает максимальное количество столбцов в индексах, предлагаемых программой dta. Максимальное значение зависит от версии SQL Server. Максимальное значение для SQL Server 2000 составляет 16. Максимальное значение для SQL Server 2005 и SQL Server 2008 равно 1024. По умолчанию значение этого аргумента равно 16.

  • -cmax_key_columns_in_index
    Задает максимальное количество ключевых столбцов в индексах, предлагаемых программой dta. Значение по умолчанию равно 16 — максимально допустимое значение. Этот аргумент применим только к SQL Server 2005 и SQL Server 2008. Программа dta также учитывает создание индексов с включенными столбцами. Количество рекомендованных индексов с включенными столбцами может превысить количество столбцов, заданное в этом аргументе.

  • -Ddatabase_name
    Задает имя каждой настраиваемой базы данных. Первой базой данных является база данных по умолчанию. Можно указать несколько баз данных, разделив их имена запятыми, например:

    dta –D database_name1, database_name2...
    

    Можно также указать несколько баз данных с помощью аргумента -D для каждой базы данных, например:

    dta –D database_name1 -D database_name2... n
    

    Аргумент -D является обязательным. Если аргумент -d задан не был, то dta сначала производит подключение к базе данных, указанной с помощью первого предложения USE database_name в рабочей нагрузке. В случае отсутствия явного предложения USE database_name в рабочей нагрузке следует использовать аргумент -d.

    Например, если имеется рабочая нагрузка, не содержащая явного предложения USE database_name, и используется следующая команда dta, то рекомендация не будет сформирована:

    dta -D db_name1, db_name2...
    

    Однако если использовать ту же рабочую нагрузку и использовать следующую команду dta с аргументом -d, то рекомендация будет сформирована:

    dta -D db_name1, db_name2 -d db_name1
    
  • -ddatabase_name
    Задает первую базу данных, к которой программа dta подключается при настройке рабочей нагрузки. Для этого аргумента может быть задана только одна база данных. Например:

    dta -d adventureworks2008R2 ...
    

    В случае указания нескольких баз данных программа dta возвращает ошибку. Аргумент -d является необязательным.

    При использовании входного XML-файла можно задать первую базу данных, к которой программа dta производит подключение, используя элемент DatabaseToConnect, расположенный под элементом TuningOptions. Дополнительные сведения см. в разделе Справочник по входным XML-файлам (помощник по настройке ядра СУБД).

    При настройке только одной базы данных аргумент -d имеет те же функции, что и аргумент -d в программе sqlcmd, однако не производит выполнения инструкции USE database_name. Дополнительные сведения см. в разделе Программа sqlcmd.

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

  • -etuning_log_name
    Задает имя таблицы или файла, где программа dta производит запись событий, которые ей не удалось настроить. Таблица создается на сервере, где производится настройка.

    В случае использования таблицы задавайте ее имя в следующем формате: [имя_базы_данных].[имя_владельца].имя_таблицы. Следующая таблица показывает значения по умолчанию для каждого параметра.

    Параметр

    Значение по умолчанию

    database_name

    database_name заданное с помощью параметра –D

    owner_name

    dbo

    ПримечаниеПримечание
    Параметр owner_name должен быть равен dbo. Если указано любое другое значение, то выполнение программы dta прервется и программа вернет ошибку.

    table_name

    Нет

    В случае использования файла следует указать XML в качестве его расширения. Например TuningLog.xml.

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

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

  • -F
    Разрешает программе dta перезапись существующего выходного файла. Если выходной файл с тем же именем уже существует, а параметр -F не указан, то программа dta возвращает ошибку. Можно использовать -F с -of, -or или -ox.

  • -faphysical_design_structures_to_add
    Задает типы структур физического проектирования, которые программа dta должна включать в рекомендацию. В следующей таблице перечислены и описаны все значения, которые могут быть указаны для данного аргумента. Если значения не заданы, то программа dta использует значение по умолчанию -faIDX.

    Значение

    Описание

    IDX_IV

    Индексы и индексированные представления. Дополнительные сведения о том, какие версии SQL Server не поддерживаются этим параметром настройки, см. в разделе Неподдерживаемые параметры настройки.

    IDX

    Только индексы.

    IV

    Только индексированные представления. Дополнительные сведения о том, какие версии SQL Server не поддерживаются этим параметром настройки, см. в разделе Неподдерживаемые параметры настройки.

    NCL_IDX

    Только некластеризованные индексы.

  • -fi
    Указывает, что необходимо рассмотреть новые рекомендации для отфильтрованных индексах. Дополнительные сведения см. в разделе Рекомендации по проектированию отфильтрованных индексов.

  • -fkkeep_existing_option
    Указывает, какие существующие структуры физического проектирования программа dta должна сохранить при формировании рекомендации. В следующей таблице перечислены и описаны все значения, которые могут быть указаны для данного аргумента.

<div class="caption">

</div>

<div class="tableSection">

<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="header">
<th><p>Значение</p></th>
<th><p>Описание</p></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>NONE</p></td>
<td><p>Никакие из существующих структур</p></td>
</tr>
<tr class="even">
<td><p>ALL</p></td>
<td><p>Все существующие структуры</p></td>
</tr>
<tr class="odd">
<td><p>ALIGNED</p></td>
<td><p>Все выровненные по секциям структуры.</p></td>
</tr>
<tr class="even">
<td><p>CL_IDX</p></td>
<td><p>Все кластеризованные индексы в таблицах</p></td>
</tr>
<tr class="odd">
<td><p>IDX</p></td>
<td><p>Все кластеризованные и некластеризованные индексы в таблицах</p></td>
</tr>
</tbody>
</table>

</div>
  • -fppartitioning_strategy
    Определяет, будут ли секционироваться новые структуры физического проектирования (индексы и индексированные представления), предлагаемые dta, а также указывает способ их секционирования. В следующей таблице перечислены и описаны все значения, которые могут быть указаны для данного аргумента.

    Значение

    Описание

    NONE

    Без секционирования

    FULL

    Полное секционирование (выберите для улучшения производительности)

    ALIGNED

    Только выровненное секционирование (выберите для улучшения возможностей управления)

    Значение ALIGNED означает, что в рекомендации, созданной программой dta, каждый предлагаемый индекс секционируется точно таким же образом, что и базовая таблица, для которой определяется индекс. Некластеризованные индексы в индексированном представлении выравниваются по индексированному представлению. Для этого аргумента может быть задано только одно значение. Значение по умолчанию равно -fpNONE.

  • -fxdrop_only_mode
    Указывает, что dta рассматривает только удаление существующих структур физического проектирования. Новые структуры физического проектирования не рассматриваются. При указании этого параметра программа dta производит оценку полезности существующих структур физического проектирования и рекомендует удалить редко используемые структуры. Этот аргумент не принимает значений. Он не может быть использован с аргументами -fa, -fp или -fk ALL.

  • -IDsession_ID
    Задает числовой идентификатор сеанса настройки. В случае его отсутствия программа dta формирует идентификационный номер. Можно использовать этот идентификатор для просмотра сведений о существующих сеансах настройки. Если значение для -ID не указано, то имя сеанса должно быть задано с помощью ключа -s.

  • -ifworkload_file
    Задает путь и имя файла рабочей нагрузки, используемого в качестве файла исходных данных для настройки. Файл должен быть в одном из следующих форматов: TRC (трассировочный файл приложения SQL Server Profiler), SQL (файл SQL) или LOG (файл трассировки SQL Server). Требуется указание либо одного файла рабочей нагрузки, либо одной таблицы рабочей нагрузки.

  • -itworkload_trace_table_name
    Задает имя таблицы, содержащей трассировку рабочей нагрузки для настройки. Имя указывается в следующем формате: [database_name].[owner_name]**.**table_name.

    Следующая таблица показывает значения по умолчанию для каждого параметра.

    Параметр

    Значение по умолчанию

    database_name

    database_name задается с помощью параметра -D.

    owner_name

    dbo.

    table_name

    Нет.

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

    Параметр owner_name должен быть равен dbo. Если указано любое другое значение, то выполнение dta прервется и программа вернет ошибку. Также обратите внимание на то, что требуется указать либо один файл рабочей нагрузки, либо одну таблицу рабочей нагрузки.

  • -ixinput_XML_file_name
    Задает имя XML-файла, содержащего входные данные для программы dta. Файл должен представлять собой допустимый XML-документ, соответствующий DTASchema.xsd. Конфликтующие аргументы, указанные в командной строке для параметров настройки, переопределяют соответствующие значения в XML-файле. Единственное исключение имеет место в том случае, когда пользовательская конфигурация вводится во входном XML-файле в режиме оценки. Например, если конфигурация задана в элементе Configuration входного XML-файла и задан элемент EvaluateConfiguration в качестве одного из параметров настройки, то параметры настройки, заданные во входном XML-файле, переопределят любые параметры настройки, введенные в командной строке.

  • -mminimum_improvement
    Задает минимальный процент улучшения, которому должна удовлетворять рекомендуемая конфигурация.

  • -Nonline_option
    Указывает, создаются ли структуры физического проектирования при работе в режиме в сети. В следующей таблице перечислены и описаны все значения, которые могут быть указаны для данного аргумента.

    Значение

    Описание

    OFF

    Рекомендованные структуры физического проектирования не могут быть созданы в режиме «в сети».

    ON

    Все рекомендованные структуры физического проектирования могут быть созданы в режиме в сети.

    MIXED

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

    Если индексы создаются в режиме в сети, то к определению объекта добавляется ONLINE = ON.

  • -nnumber_of_events
    Задает количество событий в рабочей нагрузке, которые должны быть настроены программой dta. Если этот аргумент указан, а рабочей нагрузкой является файл трассировки, содержащий сведения о продолжительности, то программа dta производит настройку событий в порядке убывания продолжительности. Этот аргумент полезен для сравнения двух конфигураций структур физического проектирования. Для сравнения двух конфигураций укажите одинаковое количество событий для настройки обеих конфигураций, а затем задайте неограниченное время настройки для обеих конфигураций, как указано далее:

    dta -n number_of_events -A 0
    

    В этом случае важно указать неограниченное время настройки (-A 0). В противном случае помощник по настройке ядра СУБД примет для времени настройки значение по умолчанию, равное 8 часам.

  • -ofoutput_script_file_name
    Указывает, что программа dta производит запись рекомендаций в виде сценария Transact-SQL в файл с указанным именем и назначением.

    С этим параметром можно использовать -F. Убедитесь в уникальности имени файла, особенно если также используются параметры -or и -ox.

  • -oroutput_xml_report_file_name
    Указывает, что dta производит запись рекомендаций в выходной отчет в формате XML. Если указано имя файла, то запись рекомендаций происходит в указанное назначение. В противном случае dta использует имя сеанса для создания имени файла и записывает его в текущий каталог.

С этим параметром можно использовать **-F**. Убедитесь в уникальности имени файла, особенно если также используются параметры **-of** и **-ox**.
  • -oxoutput_XML_file_name
    Указывает, что программа dta производит запись рекомендаций в виде XML-файла с указанным именем и назначением. Убедитесь, что помощник по настройке ядра СУБД имеет разрешение на запись в целевой каталог.

    С этим параметром можно использовать -F. Убедитесь в уникальности имени файла, особенно если также используются параметры -of и -or.

  • -Ppassword
    Указывает пароль для идентификатора имени входа. Если данный параметр не используется, то программа dta запрашивает пароль.

  • -q
    Устанавливает тихий режим. Никакие сведения не выводятся на консоль, включая сведения о ходе выполнения и сведения в заголовке.

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

    Значение

    Отчет

    ALL

    Все аналитические отчеты

    STMT_COST

    Отчет о стоимости инструкции

    EVT_FREQ

    Отчет о повторяемости событий

    STMT_DET

    Подробный отчет об инструкциях

    CUR_STMT_IDX

    Отчет о связях «инструкция-индекс» (текущая конфигурация)

    REC_STMT_IDX

    Отчет о связях «инструкция-индекс» (рекомендуемая конфигурация)

    STMT_COSTRANGE

    Отчет о диапазоне стоимости инструкции

    CUR_IDX_USAGE

    Отчет об использовании индексов (текущая конфигурация)

    REC_IDX_USAGE

    Отчет об использовании индексов (рекомендуемая конфигурация)

    CUR_IDX_DET

    Подробный отчет об индексах (текущая конфигурация)

    REC_IDX_DET

    Подробный отчет об индексах (рекомендуемая конфигурация)

    VIW_TAB

    Отчет о связях «представление-таблица»

    WKLD_ANL

    Отчет об анализе рабочей нагрузки

    DB_ACCESS

    Отчет о доступе к базе данных

    TAB_ACCESS

    Отчет о доступе к таблицам

    COL_ACCESS

    Отчет о доступе к столбцам

    Указывайте несколько отчетов, разделяя значения запятыми, например:

    ... -rl EVT_FREQ, VIW_TAB, WKLD_ANL ...
    
  • -Sserver_name[ \instance]
    Задает имя компьютера и экземпляр SQL Server для подключения. Если server_name не указано, то программа dta подключается к экземпляру SQL Server по умолчанию на локальном компьютере. Этот параметр требуется при соединении с именованным экземпляром или при запуске программы dta с удаленного компьютера в сети.

  • -ssession_name
    Задает имя сеанса настройки. Этот параметр обязателен в случае отсутствия параметра -ID.

  • -Tftable_list_file
    Задает имя файла, содержащего список настраиваемых таблиц. Каждая таблица, перечисленная в файле, должна начинаться на новой строке. Имена таблиц должны быть определены с помощью имени, состоящего из трех частей, например adventureworks2008R2.dbo.department. При необходимости для вызова функции масштабирования таблицы за именем существующей таблицы может следовать число, указывающее предполагаемое количество строк в таблице. Помощник по настройке ядра СУБД учитывает количество предполагаемых строк при настройке или оценке инструкций в рабочей нагрузке, которая ссылается на эти таблицы. Обратите внимание, что между числом number_of_rows и table_name может быть один или более пробелов.

    Формат файла для table_list_file:

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    database_name.[schema_name].table_name [number_of_rows]

    Этот аргумент является альтернативой вводу списка таблиц в командной строке (-Tl). Не используйте файл списка таблиц (-Tf) в случае использования -Tl. В случае использования обоих аргументов dta прерывает работу и возвращает ошибку.

    В случае отсутствия аргументов -Tf и -Tl все пользовательские таблицы указанной базы данных рассматриваются как подлежащие настройке.

  • -Tltable_list
    Задает список настраиваемых таблиц в командной строке. Используйте запятую в качестве разделителя имен таблиц. Если с аргументом -D указана только одна база данных, то указывать имя базы данных в именах таблиц не обязательно. В противном случае полное имя имеет следующий формат: имя_базы_данных.имя_схемы.имя_таблицы и требуется для каждой таблицы.

    Этот аргумент является альтернативой использованию файла списка таблиц (-Tf). В случае использования обоих аргументов, -Tl и -Tf, программа dta прекращает выполнение и возвращает ошибку.

  • -Ulogin_id
    Указывает идентификатор входа, используемый для соединения с SQL Server.

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

  • -x
    Производит запуск сеанса настройки и завершает работу.

Замечания

Нажмите один раз сочетание клавиш CTRL+C для прерывания сеанса настройки и создания рекомендаций на основе анализа, выполненного программой dta до момента остановки. Будет выведен запрос о создании рекомендаций. Чтобы прервать сеанс настройки без формирования рекомендаций, еще раз нажмите сочетание клавиш CTRL+C.

Примеры

A. Настройка рабочей нагрузки, которая в рекомендации содержит индексы и индексированные представления

В этом примере используется безопасное соединение (-E) для соединения с базе данных tpcd1G на сервере MyServer для проведения анализа рабочей нагрузки и формирования рекомендаций. Выполняется запись выхода в файл сценария с именем script.sql. Если файл script.sql уже существует, то программа dta перезапишет этот файл, поскольку указан аргумент -F. Сеанс настройки выполняется неограниченное время в целях обеспечения полноты анализа рабочей нагрузки (-A 0). Рекомендация должна обеспечивать минимум 5% улучшения (-m 5). dta должна содержать индексы и индексированные представления в своей заключительной рекомендации (-fa IDX_IV).

dta –S MyServer –E -D tpcd1G -if tpcd_22.sql -F –of script.sql –A 0 -m 5 -fa IDX_IV

Б. Ограничение использования диска

В этом примере общий размер базы данных, которая содержит необработанные данные и дополнительные индексы, ограничивается размером в 3 гигабайта (ГБ) (-B 3000). Выходные данные направляются в файл «d:\result_dir\script1.sql». Время выполнения примера — не более 1 часа (-A 60).

dta –D tpcd1G –if tpcd_22.sql -B 3000 –of "d:\result_dir\script1.sql" –A 60

В. Ограничение количества настраиваемых запросов

В этом примере количество запросов, читаемых из файла orders_wkld.sql, ограничивается десятью запросами (-n 10). Он выполняется в течение 15 минут (-A 15) либо до завершения работы. Чтобы убедиться в том, что все 10 запросов настроены, задайте неограниченное время настройки с помощью -A 0. Если важен фактор времени, то укажите соответствующий предел времени путем задания числа минут, доступных для настройки, с помощью аргумента -A, как показано в этом примере.

dta –D orders –if orders_wkld.sql –of script.sql –A 15 -n 10

Г. Настройка отдельных таблиц, перечисленных в файле

Этот пример демонстрирует использование table_list_file (аргумент -Tf). Файл таблицы table_list.txt имеет следующее содержимое:

Adventureworks2008R2.dbo.customer  100000
adventureworks2008R2.dbo.store
adventureworks2008R2.dbo.product  2000000

Содержимое файла table_list.txt указывает, что:

  • настройке подлежат только таблицы customer, store и product в базе данных;

  • число строк в таблицах customer и product принимается равным 100 000 и 2 000 000, соответственно;

  • число строк в таблице store принимается равным текущему числу строк в таблице.

Обратите внимание, что между числом строк и предшествующим ему именем таблицы в table_list_file может быть один или более пробелов.

Время настройки равно двум часам (-A 120), а результаты записываются в XML-файл (-ox XMLTune.xml).

dta –D pubs –if pubs_wkld.sql –ox XMLTune.xml –A 120 –Tf table_list.txt