Como gerar um script dos metadados do banco de dados necessários para criar um banco de dados somente estatísticas no SQL Server 2005 e no SQL Server 2008

Traduções deste artigo Traduções deste artigo
ID do artigo: 914288 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

O otimizador de consulta no Microsoft SQL Server 2005 ou no Microsoft SQL Server 2008 usa os seguintes tipos de informações para determinar um plano de consulta ideal:
  • Os metadados do banco de dados
  • O ambiente de hardware
  • O estado de sessão de banco de dados
Normalmente, você deve simular todos os esses mesmos tipos de informações se desejar reproduzir o comportamento do otimizador de consulta em um sistema de teste.

Serviços de atendimento ao cliente da Microsoft pode solicitar que você gerar um script de metadados do banco de dados. Serviços de atendimento ao cliente da Microsoft usa esse script dos metadados de banco de dados para investigar um problema de otimização. Este artigo descreve as etapas para gerar o script de estatísticas. O artigo também descreve como o otimizador de consulta usa as informações.

Mais Informações

Se você usar SQL Server 2005, antes de seguir as etapas para gerar o script, certifique-se de que o SQL Server Management Studio é a versão do SQL Server 2005 Service Pack 2 ou uma versão posterior. Se você usar versões anteriores do SQL Server Management Studio no SQL Server 2005, o Assistente de script não contém todas as opções necessárias para as etapas neste artigo para funcionar corretamente.

Script todo o banco de dados

Quando você gera um banco de dados somente estatísticas clone, talvez seja mais fácil e mais confiável para o banco de dados inteiro em vez de scripts objetos individuais de script. Ao script todo o banco de dados, você recebe os seguintes benefícios:
  • Você evita problemas com ausentes objetos dependentes são necessárias para reproduzir o problema.
  • Você precisa significativamente menos etapas para selecionar os objetos necessários.
Observação Se você gerar um script para um banco de dados e os metadados para o banco de dados contém milhares de objetos, o processo de script consome recursos de CPU significativos. Recomendamos que você gera o script durante as horas fora do horário de pico. Ou, você pode usar a segunda opção para gerar o script para objetos individuais.

Para cada banco de dados que é referenciado por sua consulta de script, execute estas etapas:
  1. Abra o SQL Server Management Studio.
  2. No Explorador de objetos , expanda Databases e localize o banco de dados que você deseja o script.
  3. Clique o banco de dados com o botão direito do mouse, aponte para tarefas e, em seguida, clique em Gerar Scripts .
  4. No Assistente do script, verifique se o banco de dados correto está marcado. Clique para selecionar a caixa de seleção script todos os objetos no banco de dados selecionado e, em seguida, clique em Avançar .
  5. Na caixa de diálogo Escolher opções de script , altere as configurações a seguir o valor padrão para o valor listado na tabela a seguir.
    Recolher esta tabelaExpandir esta tabela
    Opção de scriptValor para selecionar
    Enchimento do ANSI True
    continuar scripts em erro True
    Gerar scripts para objetos dependentes True
    incluir nomes de restrição de sistema True
    agrupamento de script True
    Criar banco de dados de script True
    logons de script True
    permissões de nível de objeto script True
    estatísticas de script Estatísticas de script e histogramas
    índices de script True
    disparadores de script True
    Observação A opção de Logons de script e a opção de Permissões de nível de objeto script podem não ser necessárias, a menos que o esquema contém objetos que pertencem a logons diferente de dbo .
  6. Clique em Avançar .
  7. Clique na opção script ao arquivo e, em seguida, digite um nome de arquivo.
  8. Clique em Concluir .

Objetos individuais do script

Você pode somente script objetos individuais que são referenciados por uma consulta específica em vez de scripts de banco de dados concluído. No entanto, a menos que todos os objetos de banco de dados foram criados usando a cláusula WITH SCHEMABINDING, as informações de dependência na tabela de sistema sys.depends podem não sempre sejam precisas. Este imprecisão pode causar um dos seguintes problemas:
  • O processo de script não script de um objeto dependente.
  • O processo de script pode criar um script objetos na ordem incorreta. Para executar o script com êxito, você deve editar manualmente o script gerado.
Portanto, não recomendamos que script objetos individuais, a menos que o banco de dados possui muitos objetos e scripts caso contrário, levaria muito longo. Se você deve usar objetos individuais do script, execute estas etapas:
  1. No SQL Server Management Studio, expanda Databases e localize o banco de dados que você deseja o script.
  2. Clique o banco de dados com o botão direito do mouse, aponte para Banco de dados como script , aponte para CREATE para e em seguida, clique em arquivo .
  3. Digite um nome de arquivo e, em seguida, clique em Salvar .

    O recipiente de banco de dados principal serão inseridos no script. Este contêiner inclui arquivos, grupos de arquivos, o banco de dados e propriedades.
  4. Clique o banco de dados com o botão direito do mouse, aponte para tarefas e, em seguida, clique em Gerar Scripts .
  5. Verifique se o banco de dados correto está selecionado e, em seguida, clique em Avançar .
  6. Na caixa de diálogo Escolher opções de script , altere as configurações a seguir o valor padrão para o valor listado na tabela a seguir.
    Recolher esta tabelaExpandir esta tabela
    Opção de scriptValor para selecionar
    Enchimento do ANSI True
    continuar scripts em erro True
    incluir nomes de restrição de sistema True
    Gerar scripts para objetos dependentes True
    agrupamento de script True
    logons de script True
    permissões de nível de objeto script True
    estatísticas de script Estatísticas de script e histogramas
    script USE DATABASE True
    índices de script True
    disparadores de script True
    Observação A opção de Logons de script e a opção de Permissões de nível de objeto script podem não ser necessárias, a menos que o esquema contém objetos que pertencem a logons diferente de dbo .
  7. Na caixa de diálogo Escolher tipos de objeto , selecione todos os tipos de objeto de banco de dados faz referência a consulta problemática.

    Por exemplo, se a consulta somente faz referência a tabelas, selecione tabelas . Se a consulta faz referência a um modo de exibição, selecione modos de exibição e tabelas . Se a consulta problemática usa uma função definida pelo usuário, selecione funções .
  8. Quando você tiver selecionado todos os tipos de objeto que referenciada pela consulta, clique em Avançar .
  9. Uma caixa de diálogo será exibida para cada tipo de objeto de banco de dados que você selecionou na etapa 7. Em cada caixa de diálogo, selecione as tabelas específicas, modos de exibição, funções ou outros objetos de banco de dados e em seguida, clique em Avançar .
  10. Clique na opção script ao arquivo e, em seguida, especifique o mesmo nome do arquivo que você especificou na etapa 3.
  11. Clique em Concluir para iniciar o script.
Quando o script tem terminar, envie o arquivo de script para o engenheiro de suporte Microsoft. O engenheiro de suporte da Microsoft também pode solicitar as informações a seguir:
  • A configuração de hardware, incluindo o número de processadores e existe como quantidade de memória física
  • As opções SET que estavam ativas quando você executou a consulta
Observação Você pode já forneceu essa informação, enviando um relatório SQLDiag ou um rastreamento SQL Profiler. Você pode ter usado também o outro método para fornecer essas informações.

Como as informações são usadas

As tabelas a seguir ajudam a explicar como o otimizador de consulta usa essas informações para selecionar um plano de consulta.

Metadados

Recolher esta tabelaExpandir esta tabela
RestriçõesO otimizador de consulta usa com freqüência restrições para detectar contradições entre a consulta e o esquema subjacente. Por exemplo, se a consulta tem uma "WHERE col = 5" cláusula e um "CHECK (col < 5)" existe restrição de verificação, o otimizador de consulta sabe que nenhuma linha corresponderá.

O otimizador de consulta faz com que tipos de deduções sobre nulabilidade semelhantes. Por exemplo, a cláusula "WHERE col IS NULL" é conhecida por ser true ou false dependendo a condição de nulidade da coluna e se a coluna é da tabela externa de uma associação externa. A presença de restrições FOREIGN KEY é útil para determinar a ordem de associação apropriado e cardinalidade. O otimizador pode usar informações de restrição para eliminar associações ou simplificar predicados. Essas alterações podem remover o requisito para acessar as tabelas base.
EstatísticasAs informações estatísticas contém densidade e um histograma mostra a distribuição da coluna à esquerda da chave do índice e estatísticas. Dependendo da natureza do predicado, o otimizador pode usar densidade, o histograma ou ambos para estimar a cardinalidade de um predicado. Estatísticas atualizadas são necessárias para estimativas de cardinalidade precisas. As estimativas de cardinalidade são usadas como uma entrada de estimar o custo de um operador. Portanto, você deve ter estimativas de cardinalidade boa para obter planos de consulta ideais.
Tabela de tamanho (número de linhas e as páginas)O otimizador de consulta usa o histogramas e densidade para calcular a probabilidade que um determinado predicado é verdadeira ou falsa. A estimativa de cardinalidade final é calculada multiplicando a probabilidade pelo número de linhas que são retornados pelo operador filho. O número de páginas na tabela ou o índice é um fator de estimar o custo de E/S. O tamanho da tabela é usado para calcular o custo de uma verificação, e é útil quando estimar o número de páginas que serão acessados durante uma pesquisa de índice.
Opções de banco de dadosVárias opções de banco de dados podem afetar a otimização. As opções AUTO_CREATE_STATISTICS e AUTO_UPDATE_STATISTICS afetam se o otimizador de consulta criará novas estatísticas ou estatísticas de atualização que estão desatualizadas. O nível de PARAMETRIZAÇÃO afeta como a consulta de entrada é parametrizada antes da consulta de entrada é entregue para o otimizador de consulta. Parametrização pode afetar a previsão de cardinalidade e também pode impedir que correspondência contra modos de exibição indexados e outros tipos de otimizações. A configuração DATE_CORRELATION_OPTIMIZATION faz com que o otimizador procurar correlações entre colunas. Essa configuração afeta estimativa cardinalidade e custo.

Ambiente

Recolher esta tabelaExpandir esta tabela
Opções de SET de sessão ANSI_NULLS configuração afeta se a "NULL = NULL" expressão seja avaliada como true. Previsão de cardinalidade de associações externas pode mudar dependendo a configuração atual. Além disso, ambíguos expressões também podem ser alteradas. Por exemplo, o "col = NULL" expressão é avaliada diferente com base na configuração. No entanto, o "col IS NULL" sempre expressão é avaliada da mesma maneira.
Recursos de hardwareO custo de operadores hash e de classificação depende da quantidade relativa de memória disponível para o SQL Server. Por exemplo, se o tamanho dos dados for maior do que o cache, o otimizador de consulta sabe que sempre devem ser spool os dados em disco. No entanto, se o tamanho dos dados for muito menor do que o cache, a operação é provável a ser feito na memória. SQL Server também considera otimizações diferentes se o servidor tiver mais de um processador e se não tiver sido desativado paralelismo usando uma dica "MAXDOP" ou a opção de configuração de nível máximo de paralelismo .
SQL Server ações mantendo unidade (SKU)Alguns recursos são ativados somente em edições específicas do SQL Server 2005 ou do SQL Server 2008. Por exemplo, correspondência de uma consulta em relação a modos de exibição indexados apenas ocorre no SQL Server 2005 Enterprise Edition. Da mesma forma, a correspondência com guias de plano é limitado a SQL Server 2000 Standard Edition e o SQL Server 2005 Enterprise Edition.

Propriedades

ID do artigo: 914288 - Última revisão: terça-feira, 7 de abril de 2009 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo KB914288 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 914288

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com