Compartilhar via


Utilitário dta

O utilitário dta é a versão do prompt de comando do Orientador de Otimização do Mecanismo de Banco de Dados. O utilitário dta foi projetado para permitir o uso da funcionalidade do Orientador de Otimização do Mecanismo de Banco de Dados em aplicativos e scripts.

Assim como o Orientador de Otimização do Mecanismo de Banco de Dados, o utilitário dta analisa uma carga de trabalho e recomenda estruturas de design físico para melhorar o desempenho do servidor para a carga de trabalho. A carga de trabalho pode ser um arquivo de rastreamento do SQL Server Profiler, uma tabela ou um script Transact-SQL. Estruturas de design físico incluem índices, exibições indexadas e particionamento. Depois de analisar uma carga de trabalho, o utilitário dta produz uma recomendação para o design físico de bancos de dados e gera o script necessário para implementar a recomendação. Podem ser especificadas cargas de trabalho no prompt de comando com o argumento -if ou o -it. É possível também especificar um arquivo de entrada XML no prompt de comando com o argumento -ix. Naquele caso, a carga de trabalho é especificada no arquivo de entrada XML .

Sintaxe


            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 ]
     ]

Argumentos

  • -?
    Exibe informações de uso.

  • -Atime_for_tuning_in_minutes
    Especifica o prazo de ajuste em minutos. O dta usa a quantia especificada de tempo para ajustar a carga de trabalho e gerar um script com as mudanças de design físico recomendadas. Por padrão o dta assume um tempo de ajuste de 8 horas. Especificando 0 permite tempo de ajuste ilimitado. O dta pode terminar o ajuste da carga de trabalho inteira antes que o prazo expire. No entanto, para ter certeza de que a carga de trabalho inteira seja ajustada, é aconselhável que você especifique um tempo de ajuste ilimitado (-A 0).

  • -a
    Ajusta a carga de trabalho e aplica a recomendação sem uma solicitação.

  • -Bstorage_size
    Especifica o espaço máximo em megabytes que pode ser consumido pelo índice e particionamento recomendados. Quando são ajustados bancos de dados múltiplos, recomendações para todos os bancos de dados são consideradas para o cálculo do espaço. Por padrão, o dta assume o menor dos seguintes tamanhos de armazenamento:

    • Três vezes o tamanho de dados brutos atuais, o que inclui o tamanho total de heaps e índices cluster em tabelas no banco de dados.

    • Os espaços livres em todas as unidades de disco anexas mais o tamanho dos dados brutos.

    O tamanho de armazenamento padrão não inclui índices não-cluster e exibições indexadas.

  • -Cmax_columns_in_index
    Especifica o número máximo de colunas nos índices que o dta propõe. O valor máximo depende da versão do SQL Server. O valor máximo para SQL Server 2000 é 16 e para SQL Server 2005 e SQL Server 2008 é 1024. Por padrão, esse argumento é definido como 16.

  • -cmax_key_columns_in_index
    Especifica o número máximo de colunas principais nos índices que o dta propõe. O valor padrão é 16, o valor máximo permitido. Este argumento só se aplica ao SQL Server 2005 e ao SQL Server 2008. O dta também considera a criação de índices com colunas incluídas. Os índices recomendados com colunas incluídas podem exceder o número de colunas especificado neste argumento.

  • -Ddatabase_name
    Especifica o nome de cada banco de dados que será ajustado. O primeiro banco de dados é o banco de dados padrão. É possível especificar bancos de dados múltiplos separando os nomes do banco de dados com vírgulas, por exemplo:

    dta –D database_name1, database_name2...
    

    Como alternativa, você pode especificar bancos de dados múltiplos usando o argumento –D para cada nome de banco de dados, por exemplo:

    dta –D database_name1 -D database_name2... n
    

    O argumento -D é obrigatório. Se o argumento -d não foi especificado, o dta se conectará inicialmente ao banco de dados que é especificado com a primeira cláusula USE database_name na carga de trabalho. Se não houver a cláusula explícita USE database_name na carga de trabalho, você deve usar o argumento -d.

    Por exemplo, caso tenha uma carga de trabalho que não contém nenhuma cláusula explícita USE database_name e você usar o seguinte comando dta, uma recomendação não será gerada:

    dta -D db_name1, db_name2...
    

    Mas, se você usar a mesma carga de trabalho e o comando dta que usa o argumento -d, uma recomendação será gerada:

    dta -D db_name1, db_name2 -d db_name1
    
  • -ddatabase_name
    Especifica o primeiro banco de dados para o qual o dta se conecta ao ajustar uma carga de trabalho. Só um banco de dados pode ser especificado para esse argumento. Por exemplo:

    dta -d adventureworks ...
    

    Se forem especificados nomes de banco de dados múltiplos, então o dta retornará um erro. O argumento -d é opcional.

    Se você estiver usando uma entrada de arquivo XML, é possível especificar o primeiro banco de dados para o qual o dta se conecta, usando o elemento DatabaseToConnect que está alocado no elemento TuningOptions. Para obter mais informações, consulte Referência do arquivo de entrada XML (Orientador de Otimização do Mecanismo de Banco de Dados).

    Se você estiver ajustando apenas um banco de dados, o argumento -d fornecerá uma funcionalidade que é semelhante ao argumento -d no utilitário sqlcmd, mas não executará a instrução USE database_name. Para obter mais informações, consulte Utilitário sqlcmd.

  • -E
    Usa uma conexão confiável em vez de pedir uma senha. O argumento -E ou o argumento -U, que especifica um logon ID, deve ser usado.

  • -etuning_log_name
    Especifica o nome da tabela ou arquivo onde o dta registra eventos que não pôde ajustar. A tabela é criada no servidor onde o ajuste é executado.

    Se uma tabela for usada, especifique o nome no formato: [nome_do_banco_de_dados].[nome_do_trabalho].nome_da_tabela. A tabela a seguir mostra os valores padrão para cada parâmetro:

    Parâmetros

    Valor padrão

    database_name

    database_name especificados com a opção –D

    owner_name

    dbo

    ObservaçãoObservação
    owner_name devem ser dbo. Se qualquer outro valor for especificado, então a execução de dta falhará e retornará um erro.

    table_name

    Nenhum

    Se um arquivo for usado, especifique .xml como sua extensão. Por exemplo, TuningLog.xml.

    ObservaçãoObservação

    O utilitário dta não irá excluir os conteúdos das tabelas de log de ajuste especificadas pelo usuário se a sessão for excluída. Ao ajustar cargas de trabalho muito grandes, é recomendável que uma tabela seja especificada para o log de ajuste. Uma vez que o ajuste de cargas de trabalho grandes pode resultar em logs de ajuste grandes, as sessões podem ser excluídas muito mais rapidamente ao usar uma tabela.

  • -F
    Permite que o dta substitua um arquivo de saída existente. Se um arquivo de saída com o mesmo nome já existir e -F não for especificado, o dta retornará um erro. Você pode usar o - F com -of, -or, ou -ox.

  • -faphysical_design_structures_to_add
    Especifica que tipos de estruturas de design físico o dta deveria incluir na recomendação. A tabela seguinte lista e descreve os valores que podem ser especificados para esse argumento. Quando nenhum valor é especificado, o dta usa o padrão -faIDX.

    Valor

    Descrição

    IDX_IV

    Índices e exibições indexadas. Para obter informações sobre quais as versões de SQL Server que a opção de ajuste não tem suporte, consulte Opções de ajuste sem suporte.

    IDX

    Somente índices.

    IV

    Somente exibições indexadas. Para obter informações sobre quais as versões de SQL Server que essa opção de ajuste não tem suporte, consulte Opções de ajuste sem suporte.

    NCL_IDX

    Somente índices não-cluster

  • -fi
    Especifica que os índices filtrados serão considerados em novas recomendações. Para obter mais informações, consulte Diretrizes de criação de índice filtrado.

  • -fkkeep_existing_option
    Especifica quais estruturas de design físico o dta deve reter ao gerar sua recomendação. A tabela a seguir lista e descreve os valores que podem ser especificados para este argumento.

<div class="caption">

</div>

<div class="tableSection">

<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="header">
<th><p>Valor</p></th>
<th><p>Descrição</p></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>NENHUM</p></td>
<td><p>Nenhuma estrutura existente</p></td>
</tr>
<tr class="even">
<td><p>TODAS</p></td>
<td><p>Todas as estruturas existentes</p></td>
</tr>
<tr class="odd">
<td><p>ALINHADO</p></td>
<td><p>Todas as estruturas alinhadas por partição.</p></td>
</tr>
<tr class="even">
<td><p>CL_IDX</p></td>
<td><p>Todos os índices cluster em tabelas</p></td>
</tr>
<tr class="odd">
<td><p>IDX</p></td>
<td><p>Todos os índices cluster e não-cluster em tabelas</p></td>
</tr>
</tbody>
</table>

</div>
  • -fppartitioning_strategy
    Especifica se as novas estruturas de design físico (índices e exibições indexadas) que o dta propõe devem ser particionadas e como particioná-las. A tabela a seguir lista e descreve os valores que podem ser especificados para este argumento.

    Valor

    Descrição

    NENHUM

    Nenhum particionamento

    COMPLETO

    Particionamento completo (escolha para melhorar o desempenho).

    ALIGNED

    Somente particionamento alinhado (escolha para melhorar a capacidade de gerenciamento)

    ALIGNED significa que, na recomendação gerada pelo dta todo índice proposto é particionado exatamente do mesmo modo que a tabela subjacente para a qual o índice foi definido. Índices não-cluster em uma exibição indexada são alinhados com a exibição indexada. Só um valor pode ser especificado para este argumento. O padrão é -fpNONE.

  • -fxdrop_only_mode
    Especifica que o dta só considera descartar as estruturas de design físico existentes. Nenhuma estrutura de design físico nova é considerada. Quando esta opção é especificada, o dta avalia a utilidade de estruturas de design físico existentes e recomenda descartar as estruturas raramente usadas. Este argumento não leva nenhum valor. Não pode ser usado com os argumentos -fa, -fp, ou - fkALL

  • -IDsession_ID
    Especifica um identificador numérico para a sessão de ajuste. Se não especificado, então o dta gera um número de ID (identificação). Você pode usar este identificador para exibir informações para sessões de ajuste existentes. Se você não especificar um valor para - D, então um nome de sessão deve ser especificado com -s.

  • -ifworkload_file
    Especifica o caminho e nome do arquivo de carga de trabalho para usar como entrada para ajuste. O arquivo deve estar em um desses formatos: .trc (arquivo de rastreamento do SQL Server Profiler), .sql (arquivo de SQL) ou .log (arquivo de rastreamento do SQL Server). Um arquivo de carga de trabalho ou uma tabela de carga de trabalho deve ser especificado.

  • -itworkload_trace_table_name
    Especifica o nome de uma tabela que contém o rastreamento de carga de trabalho para ajustar. O nome é especificado no formato: [database_name].[owner_name].table_name. [database_name].[owner_name]**.**table_name.

    A tabela a seguir mostra os valores padrão de cada um:

    Parâmetro

    Valor padrão

    database_name

    database_name especificados com a opção –D.

    owner_name

    dbo.

    table_name

    Nenhum.

    ObservaçãoObservação

    owner_name devem ser dbo. Se qualquer outro valor for especificado, a execução de dta falhará e um erro será retornado. Também observe que uma tabela de carga de trabalho ou um arquivo de carga de trabalho deve ser especificado.

  • -ixinput_XML_file_name
    Especifica o nome do arquivo XML que contém informações de entrada do dta. Esse deve ser um documento XML válido em conformidade com o DTASchema.xsd. Argumentos em conflito especificados no prompt de comando para opções de ajuste anulam o valor correspondente no arquivo XML . A única exceção será se uma configuração especificada pelo usuário for digitada dentro do modo de avaliação no arquivo de entrada XML. Por exemplo, se uma configuração for digitada em Configuração do elemento do arquivo de entrada XML e o elemento Avaliar Configuração também for especificado como um das opções de ajuste, as opções de ajuste especificadas no arquivo de entrada XML substituirão a opção de ajuste digitada no prompt de comando.

  • -mminimum_improvement
    Especifica a porcentagem mínima de melhoria que a configuração recomendada deve satisfazer.

  • -Nonline_option
    Especifica se são criadas estruturas de design físico online. A tabela a seguir lista e descreve os valores que poderão ser especificados para este argumento.

    Valor

    Descrição

    OFF

    Nenhuma estrutura de design físico recomendada pode ser criada online.

    ON

    Todas as estruturas de design físico recomendadas podem ser criadas online.

    MIXED

    O Orientador de Otimização do Mecanismo de Banco de Dados tenta recomendar estruturas de design físico que podem ser criadas online quando possível.

    Se forem criados índices online, ONLINE = ON é acrescentado a sua definição de objeto.

  • -nnumber_of_events
    Especifica o número de eventos na carga de trabalho que o dta deveria ajustar. Se este argumento for especificado e a carga de trabalho for um arquivo de rastreamento que contém informações de duração, então o dta ajusta os eventos em ordem decrescente de duração. Este argumento é útil para comparar duas configurações de estruturas de design físico. Para comparar duas configurações, especifique o mesmo número de eventos para serem ajustados para ambas as configurações e então também especifique um tempo de ajuste ilimitado para ambos como segue:

    dta -n number_of_events -A 0
    

    Neste caso, é importante especificar um tempo de ajuste ilimitado (-A 0). Caso contrário, o Database Engine Tuning Advisor assume um tempo de 8 horas de ajuste hora por padrão.

  • -ofoutput_script_file_name
    Especifica que o dta grava a recomendação como um script Transact-SQL para o nome de arquivo e destino especificados.

    Você pode usar -F com esta opção. Assegure-se de que o nome de arquivo é exclusivo, especialmente se você também estiver usando -or e -ox.

  • -oroutput_xml_report_file_name
    Especifica que o dta grava a recomendação a um relatório de saída em XML. Se um nome de arquivo for fornecido, então as recomendações serão gravadas naquele destino. Caso contrário, o dta usa o nome de sessão para gerar o nome de arquivo e o grava no diretório atual.

Você pode usar **-F** com esta opção. Assegure-se de que o nome de arquivo é exclusivo, especialmente se você também estiver usando **-of** e **-ox**.
  • -oxoutput_XML_file_name
    Especifica que o dta grava a recomendação como um arquivo XML para o nome de arquivo e destino fornecidos. Assegure-se de que o Orientador de Otimização do Mecanismo de Banco de Dados tem permissões para gravar no diretório de destino.

    Você pode usar -F com esta opção. Assegure-se de que o nome de arquivo é exclusivo, especialmente se você também estiver usando -of e -or.

  • -Ppassword
    Especifica a senha para a ID de logon. Se esta opção não for usada, o dta solicita a senha.

  • -q
    Define modo silencioso. Nenhuma informação é gravada no console, inclusive informações de progresso e de cabeçalho.

  • -rlanalysis_report_list
    Especifica a lista de relatórios de análise a serem gerados. A tabela a seguir lista os valores que podem ser especificados para este argumento:

    Valor

    Relatório

    TODOS

    Todos os relatórios de análise

    STMT_COST

    Relatório de custo da instrução

    EVT_FREQ

    Relatório de freqüência de evento

    STMT_DET

    Relatório de detalhe de instrução

    CUR_STMT_IDX

    Relatório de relações do índice de instrução (configuração atual)

    REC_STMT_IDX

    Relatório de relações do índice de instrução (configuração recomendada)

    STMT_COSTRANGE

    Relatório de intervalo de custo da instrução

    CUR_IDX_USAGE

    Relatório de uso de índice (configuração atual)

    REC_IDX_USAGE

    Relatório de uso de índice (configuração recomendada)

    CUR_IDX_DET

    Relatório de detalhe de índice (configuração atual)

    REC_IDX_DET

    Relatório de detalhe de índice (configuração recomendada)

    VIW_TAB

    Relatório de relações da tabela de exibição

    WKLD_ANL

    Relatório de análise da carga de trabalho

    DB_ACCESS

    Relatório de acesso ao banco de dados

    TAB_ACCESS

    Relatório de acesso à tabela

    COL_ACCESS

    Relatório de acesso à coluna

    Especifica relatórios múltiplos separando os valores com vírgulas, por exemplo:

    ... -rl EVT_FREQ, VIW_TAB, WKLD_ANL ...
    
  • -Sserver_name[ \instance]
    Especifica o nome do computador e instância de SQL Server para conectar. Se nenhum server_name é especificado, o dta se conecta à instância padrão de SQL Server no computador local. Essa opção é requerida ao conectar-se à uma instância nomeada ou ao executar o dta de um computador remoto na rede.

  • -ssession_name
    Especifica o nome da sessão de ajuste. Isso é requerido se -ID não for especificado.

  • -Tftable_list_file
    Especifica o nome de um arquivo que contém uma lista de tabelas para ser ajustada. Cada tabela listada dentro do arquivo deve começar em uma linha nova. Devem ser qualificados nomes de tabela com nomeação de três partes, por exemplo, adventureworks.dbo.department. Além disso, para invocar o recurso do escalamento de tabela, o nome de uma tabela existente pode ser seguido por um número que indica o número projetado de linhas na tabela. O Orientador de Otimização do Mecanismo de Banco de Dados leva em conta o número projetado de linhas ao ajustar ou avaliar as instruções na carga de trabalho que referenciam estas tabelas. Observe que pode haver um ou mais espaços entre a contagem de number_of_rows e o table_name.

    Esse é o formato de arquivo para 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]

    Esse argumento é uma alternativa ao digitar uma lista de tabela no prompt de comando (-Tl). Não use um arquivo de lista de tabela (- Tf) se você estiver usando -Tl. Se ambos os argumentos forem usados, o dta falhará e retornará um erro.

    Se os argumentos -Tf e - Tl forem omitidos , todas as tabelas de usuário nos bancos de dados especificados serão consideradas para o ajuste.

  • -Tltable_list
    Especifica ao prompt de comando uma lista de tabelas para serem ajustadas. Coloque vírgulas entre os nomes de tabela para separá-los. Se só um banco de dados for especificado com o argumento - D , então os nomes de tabela não precisam ser qualificados com um nome de banco de dados. Caso contrário, o nome completo é qualificado no formato: database_name.schema_name.table_name é requerido para cada tabela.

    Esse argumento é uma alternativa para usar um arquivo de lista de tabela (-Tf). Se ambos - Tl e - Tf forem usados, o dta falhará e retornará um erro.

  • -Ulogin_id
    Especifica a ID de logon usada para conectar-se ao SQL Server.

  • -u
    Inicia a GUI do Orientador de Otimização do Mecanismo de Banco de Dados. Todos os parâmetros são tratados como as configurações iniciais para a interface com o usuário.

  • -x
    Inicia a sessão de ajuste e sai.

Comentários

Pressione CTRL+C uma vez para parar a sessão de ajuste e gerar recomendações com base na análise do dta completada até este ponto. Será solicitado se você deseja ou não gerar recomendações. Pressione CTRL+C novamente para parar a sessão de ajuste sem gerar recomendações.

Exemplos

A. Ajuste uma carga de trabalho que inclui índices e exibições indexadas em sua recomendação

Esse exemplo usa uma conexão segura (-E) para conectar-se ao banco de dados tpcd1G no MyServer para analisar uma carga de trabalho e criar recomendações. Grava a saída em um arquivo de script nomeado script.sql. Se o script.sql já existir, então o dta substituirá o arquivo porque o argumento -F foi especificado. A sessão de ajuste é executada por um tempo ilimitado para assegurar uma análise completa da carga de trabalho (-A 0). A recomendação deve fornecer uma melhoria mínima de 5% (-m 5). o dta deveria incluir índices e exibições indexadas em sua recomendação final (-fa IDX_IV).

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

B. Limita o uso de disco

Esse exemplo limita o tamanho de banco de dados total que inclui os dados brutos e os índices adicionais a 3 gigabytes (GB) (-B 3000) e direciona a saída para d:\result_dir\script1.sql. É executado por não mais que 1 hora (-A 60).

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

C. Limita o número de consultas de ajuste

Esse exemplo limita o número de consultas lidas do arquivo orders_wkld.sql para um máximo de 10 (-n 10) e é executado durante 15 minutos (-A 15), o que vier primeiro. Para assegura-se de todas as 10 consultas sejam ajustadas, especifique um tempo de ajuste ilimitado com -A 0. Se o tempo for importante, determine um prazo apropriado, especificando o número de minutos que estão disponíveis para ajuste com o argumento -A como mostrado neste exemplo.

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

D. Ajusta tabelas específicas listadas em um arquivo

Esse exemplo demonstra o uso de table_list_file (o argumento - Tf). Os conteúdos do arquivo table_list.txt é como segue:

adventureworks.dbo.customer  100000
adventureworks.dbo.store
adventureworks.dbo.product  2000000

Os conteúdos de table_list.txt especificam que:

  • Deveriam ser afinados só o cliente, estoque e tabelas de produto no banco de dados.

  • É assumido que o número de linhas nas tabelas de cliente e de produto é 100.000 e 2.000.000, respectivamente.

  • É assumido que em estoque o número de linhas é o número atual de linhas na tabela.

Observe que pode haver um ou mais espaços entre o número de conta de linhas e o nome de tabela precedente no table_list_file.

O tempo de ajuste é de 2 horas (-A 120) e a saída é gravada em um arquivo XML (-ox XMLTune.xml).

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