Compartilhar via


Por que os eventos não estão ajustados

Este tópico lista as razões comuns pelas quais os eventos não são ajustados e como o Orientador de Otimização do Mecanismo de Banco de Dados escolhe o banco de dados correto a partir do qual deve executar eventos de ajuste.

Motivos comuns pelos quais os eventos não são ajustados

Supondo que o banco de dados em relação ao qual o evento foi executado tenha sido originalmente identificado corretamente (consulte a seção a seguir), os eventos não são ajustados se:

  • Eles fazem referência a tabelas que não foram selecionadas para ajuste.

  • Eles fazem referência a tabelas muito pequenas, com menos de 10 páginas.

ObservaçãoObservação

Para localizar o número de páginas em uma tabela do Microsoft SQL Server 2000, use a coluna dpages da tabela do sistema sysindexes. Para localizar o número de páginas em uma tabela do Microsoft SQL Server 2005 e posterior, use a coluna used_page_count da exibição do catálogo sys.dm_db_partition_stats.

  • O Orientador de Otimização do Mecanismo de Banco de Dados não tem tempo suficiente para ajustar a consulta especificada pelo usuário.

  • As tabelas de referência deles que já estão perto do número máximo de índices e a opção para manter os índices existentes foram selecionadas. Nesse caso, nenhum índice adicional é possível nessas tabelas.

  • Muitas instruções (INSERT, UPDATE e DELETE) de linguagem de manipulação de dados (DML) são executadas na tabela subjacente para o evento. A adição de mais índices ou exibições indexadas pode degradar o desempenho dessas tabelas subjacentes.

  • As seguintes opções de ajuste foram especificadas:

    • O número máximo de colunas é limitado.

    • O espaço em disco especificado para armazenamento é muito pequeno, ou se há muitos índices existentes e exibições indexadas no banco de dados, e um espaço em disco inadequado foi especificado para o ajuste.

      ObservaçãoObservação

      Você pode especificar um limite de espaço em disco para recomendações de ajuste usando a caixa de diálogo Opções de Ajuste Avançadas na interface gráfica do usuário (GUI) do Orientador de Otimização do Mecanismo de Banco de Dados, ou especificando um valor para o argumento -B quando usar o utilitário de linha de comando dta.

Como o Orientador de Otimização do Mecanismo de Banco de Dados determina o banco de dados correto para eventos de ajuste

Dependendo do tipo de ajuste no arquivo de carga de trabalho e das opções que você especifica ao ajustar cargas de trabalho, o Orientador de Otimização do Mecanismo de Banco de Dados escolhe o banco de dados correto no qual deve executar eventos de ajuste, da seguinte maneira:

Para ajuste de arquivos de carga de trabalho pelo SQL Script (.sql)

  • Se você especificar um nome de banco de dados com qualquer um dos seguintes:

    • Argumento -d para o utilitário de linha de comando dta

    • Elemento DatabaseToConnect no arquivo de entrada XML

    Essas opções definem o banco de dados padrão com o qual o Orientador de Otimização do Mecanismo de Banco de Dados faz a primeira conexão quando inicia uma sessão de ajuste. Depois dessa conexão inicial com o banco de dados, o Orientador de Otimização do Mecanismo de Banco de Dados usa cada instrução USE database_name no script para alterar o contexto do banco de dados para instruções posteriores.

  • Se você não especificar explicitamente a conexão inicial do banco de dados para uma sessão de ajuste, o Orientador de Otimização do Mecanismo de Banco de Dados usará o banco de dados padrão que estiver definido para o logon especificado no servidor em que ocorre o ajuste. Depois dessa conexão inicial do banco de dados, o Orientador de Otimização do Mecanismo de Banco de Dados altera o contexto do banco de dados para outras instruções do mesmo modo como faz quando você especifica a conexão inicial explicitamente. O Orientador de Otimização do Mecanismo de Banco de Dados usa as instruções USE database_name para determinar o contexto do banco de dados.

Para ajuste de arquivos de carga de trabalho por rastreamento(.trc)

Quando você usa arquivos de rastreamento, o Orientador de Otimização do Mecanismo de Banco de Dados escolhe o banco de dados em que executa eventos para cada SPID (ID de processo de servidor) que é especificada no rastreamento. Se nenhuma SPID for especificada no rastreamento, o Orientador de Otimização do Mecanismo de Banco de Dados assumirá a mesma SPID para todos os eventos que estiverem contidos nesse rastreamento. O Orientador de Otimização do Mecanismo de Banco de Dados escolhe o banco de dados para cada SPID da seguinte maneira:

  1. DatabaseName está presente no rastreamento.

    Se o campo DatabaseName estiver presente no arquivo de rastreamento, o Orientador de Otimização do Mecanismo de Banco de Dados usará o campo para determinar o banco de dados no qual analisará o evento. Todas as outra informações são ignoradas. Se o campo DatabaseName não estiver presente, o Orientador de Otimização do Mecanismo de Banco de Dados irá para a etapa 2.

  2. DatabaseID está presente no rastreamento, masDatabaseName não está.

Se o campo DatabaseID estiver presente no arquivo de rastreamento, o Orientador de Otimização do Mecanismo de Banco de Dados usará o campo para determinar o banco de dados no qual analisará o evento. O campo DatabaseID é mapeado para o nome de banco de dados. Porém, o Orientador de Otimização do Mecanismo de Banco de Dados não valida o fato de os campos DatabaseID terem sido alterados desde a realização do rastreamento. Se você não estiver seguro de que o mapeamento de DatabaseID-para- DatabaseName seja atual, remova o campo DatabaseID do arquivo de carga de trabalho de rastreamento. Todas as outras informações são ignoradas. Se DatabaseName e DatabaseID não estiverem presentes, o Orientador de Otimização do Mecanismo de Banco de Dados irá para a etapa 3.

  1. Se DatabaseName e DatabaseID não estiver presente no rastreamento.

    Se DatabaseName e DatabaseID não estiverem presentes no rastreamento, o Orientador de Otimização do Mecanismo de Banco de Dados determinará o banco de dados no qual executará o evento da mesma maneira como faz no script SQL de ajuste de arquivos de carga de trabalho. Esse processo está descrito na seção anterior, Para ajuste de arquivos de carga de trabalho pelo SQL Script (.sql).

Consulte também

Conceitos