A gerar um script de metadados da base de dados necessário para criar uma base de dados só de estatísticas no SQL Server 2005 e do SQL Server 2008

Traduções de Artigos Traduções de Artigos
Artigo: 914288 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

O Optimizador de consultas no Microsoft SQL Server 2005 ou no Microsoft SQL Server 2008 utiliza os seguintes tipos de informações para determinar um plano de consulta ideal:
  • Os metadados da base de dados
  • O ambiente de hardware
  • O estado da sessão da base de dados
Normalmente, tem de simular todos os estes mesmos tipos de informações se pretender reproduzir o comportamento do Optimizador de consultas num sistema de teste.

Serviço de apoio a clientes da Microsoft poderá pedir-lhe para gerar um script de metadados da base de dados. Serviço de apoio a clientes da Microsoft utiliza este script de metadados da base de dados para investigar um problema de optimização. Este artigo descreve os passos para gerar o script de estatísticas. Este artigo também descreve como o Optimizador de consultas utiliza as informações.

Mais Informação

Se utiliza o SQL Server 2005, antes de seguir os passos para gerar o script, certifique-se de que o SQL Server Management Studio é a versão do SQL Server 2005 Service Pack 2 ou posterior. Se utilizar 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 os passos neste artigo para funcionar correctamente.

Script base de dados completa

Ao gerar uma base de dados só de estatísticas clone, poderá ser mais fácil e mais fiável de scripts da base de dados inteira em vez de scripts objectos individuais. Quando o script base de dados completo, receberá as seguintes vantagens:
  • Evita problemas relacionados com falta de objectos dependentes são necessários para reproduzir o problema.
  • Requer menos significativamente passos para seleccionar objectos necessários.
Nota Se gerar um script para uma base de dados e os metadados para a base de dados contém milhares de objectos, o processo de criação de scripts consome recursos da CPU significativos. Recomendamos que gerar o script durante as horas de menor volume de trabalho. Ou, pode utilizar a segunda opção para gerar o script para objectos individuais.

Para cada base de dados que é referenciada pela consulta de script, siga estes passos:
  1. Abra o SQL Server Management Studio.
  2. No Explorador de objectos , expandir bases de dados e, em seguida, localize a base de dados que pretende script.
  3. Clique com o botão direito do rato na base de dados, aponte para tarefas e, em seguida, clique em Gerar Scripts .
  4. No Assistente de script, verifique se a base de dados correcta está seleccionada. Clique para seleccionar a caixa de verificação script todos os objectos numa base de dados seleccionado e, em seguida, clique em seguinte .
  5. Na caixa de diálogo Escolher opções de script , altere as definições seguintes: o valor predefinido para o valor listado na tabela que se segue.
    Reduzir esta tabelaExpandir esta tabela
    Opção de criação de scriptsValor para seleccionar
    área de ANSI TRUE
    continuar a execução de scripts no erro TRUE
    Gerar scripts de objectos dependentes TRUE
    incluir nomes de restrição do sistema TRUE
    agrupamento de script TRUE
    Criar base de dados de script TRUE
    inícios de sessão de script TRUE
    permissões de nível de objecto de script TRUE
    Estatísticas de script Estatísticas de script e histogramas
    índices de script TRUE
    Accionadores de script TRUE
    Nota A opção de Inícios de sessão de script e a opção de Permissões de nível de objecto de script podem não ser necessárias a menos que o esquema contém objectos que são propriedade inícios de sessão diferente dbo .
  6. Clique em seguinte .
  7. Clique na opção script ao ficheiro e, em seguida, introduza um nome de ficheiro.
  8. Clique em Concluir .

Objectos individuais do script

Pode apenas script objectos individuais que são referenciados por uma determinada consulta em vez de scripts de base de dados completa. No entanto, a menos que todos os objectos de base de dados criados com a cláusula WITH SCHEMABINDING, as informações de dependência na tabela de sistema sys.depends não é sempre possível precisas. Este inaccuracy pode causar um dos seguintes problemas:
  • O processo de criação de scripts não script de um objecto dependente.
  • O processo de criação de scripts pode script objectos na ordem incorrecta. Para executar o script com êxito, tem de editar manualmente o script gerado.
Por conseguinte, não recomendamos que script objectos individuais, a menos que a dados tem muitos objectos e scripts caso contrário levaria demasiado longo. Se tiver de utilizar objectos individuais do script, siga estes passos:
  1. No SQL Server Management Studio, expanda bases de dados e, em seguida, localize a base de dados que pretende script.
  2. Clique com o botão direito do rato na base de dados, aponte para Base de dados de script como , aponte para CREATE para e, em seguida, clique em ficheiro .
  3. Introduza um nome de ficheiro e, em seguida, clique em Guardar .

    O contentor de base de dados principal irá ser script. Este contentor inclui ficheiros, grupos de ficheiros, a base de dados e propriedades.
  4. Clique com o botão direito do rato na base de dados, aponte para tarefas e, em seguida, clique em Gerar Scripts .
  5. Certifique-se de que a base de dados correcta está seleccionada e, em seguida, clique em seguinte .
  6. Na caixa de diálogo Escolher opções de script , altere as definições seguintes: o valor predefinido para o valor listado na tabela que se segue.
    Reduzir esta tabelaExpandir esta tabela
    Opção de criação de scriptsValor para seleccionar
    área de ANSI TRUE
    continuar a execução de scripts no erro TRUE
    incluir nomes de restrição do sistema TRUE
    Gerar scripts de objectos dependentes TRUE
    agrupamento de script TRUE
    inícios de sessão de script TRUE
    permissões de nível de objecto de script TRUE
    Estatísticas de script Estatísticas de script e histogramas
    script USE DATABASE TRUE
    índices de script TRUE
    Accionadores de script TRUE
    Nota A opção de Inícios de sessão de script e a opção de Permissões de nível de objecto de script podem não ser necessárias a menos que o esquema contém objectos que são propriedade inícios de sessão diferente dbo .
  7. Na caixa de diálogo Escolher tipos de objecto , seleccione todos os tipos de objecto da base de dados que referencia a consulta problemática.

    Por exemplo, se a consulta só faz referência a tabelas, seleccione tabelas . Se a consulta faz referência a uma vista, seleccione as vistas e tabelas . Se a consulta problemática utiliza uma função definida pelo utilizador, seleccione funções .
  8. Quando tiver seleccionado todos os tipos de objectos referenciados pela consulta, clique em seguinte .
  9. Aparece uma caixa de diálogo para cada tipo de objecto da base de dados que seleccionou no passo 7. Em cada caixa de diálogo, seleccione as tabelas específicas, vistas, funções ou outros objectos de base de dados e, em seguida, clique em seguinte .
  10. Clique na opção script ao ficheiro e, em seguida, especifique o mesmo nome do ficheiro que introduziu no passo 3.
  11. Clique em Concluir para iniciar o processamento de scripts.
Quando termina o processamento de scripts, envie o ficheiro script para o engenheiro de suporte da Microsoft. O engenheiro de suporte Microsoft também pode pedir as seguintes informações:
  • A configuração de hardware, incluindo o número de processadores e a quantidade de memória física existe
  • As opções de SET que estavam activas quando executou a consulta
Nota Que tiver já fornecido estas informações através do envio de um relatório SQLDiag ou um rastreamento SQL Profiler. Pode ter também utilizado outro método para fornecer estas informações.

Como as informações são utilizadas

As tabelas seguintes ajudam a explicar como o Optimizador de consultas utiliza estas informações para seleccionar um plano de consulta.

Metadados

Reduzir esta tabelaExpandir esta tabela
RestriçõesO Optimizador de consultas utiliza frequentemente restrições para detectar contradictions entre a consulta e o esquema subjacente. Por exemplo, se a consulta tem um "WHERE col = 5" cláusula e um "CHECK (col < 5)" restrição de verificação existe, o Optimizador de consultas sabe que existem linhas irão corresponder.

Tipos semelhantes de deduções sobre a condição de nulidade faz com que o Optimizador de consultas. Por exemplo, a cláusula "WHERE col IS NULL" é conhecida para ser VERDADEIRO ou FALSO, dependendo da condição de nulidade da coluna e se a coluna da tabela externa de uma associação externa. A presença de restrições de FOREIGN KEY é útil para determinar a cardinalidade e a ordem de associação adequado. O Optimizador de consultas pode utilizar informações de restrição para eliminar associações ou simplificar predicados. Estas alterações podem remover o requisito para aceder as tabelas base.
EstatísticasAs informações estatísticas contém densidade e um histograma mostra a distribuição da coluna à esquerda da chave de índice e estatísticas. Dependendo da natureza do predicado, o Optimizador de consultas pode utilize densidade, o histograma ou ambos para estimar a cardinalidade de um predicado. As estatísticas actualizadas são necessárias para estimativas de cardinalidade precisas. As estimativas de cardinalidade são utilizadas como uma entrada de calcular o custo de um operador. Por este motivo, tem de ter as estimativas de cardinalidade boa obter planos de consulta ideal.
Tamanho da tabela (número de linhas e páginas)O Optimizador de consultas utiliza os histogramas e densidade para calcular a probabilidade que um predicado determinado é verdadeira ou falsa. A estimativa de cardinalidade final é calculada multiplicando a probabilidade pelo número de linhas devolvido pelo operador de subordinados. O número de páginas na tabela ou o índice é um factor de calcular o custo de E/S. O tamanho da tabela é utilizado para calcular o custo de uma análise e é útil quando calcular o número de páginas que irá ser acedida durante uma procura de índice.
Opções de base de dadosVárias opções de base de dados podem afectar a optimização. As opções AUTO_CREATE_STATISTICS e AUTO_UPDATE_STATISTICS afectam se o Optimizador de consultas criará novas estatísticas ou estatísticas de actualização que estão desactualizadas. O nível PARAMETERIZATION afecta como a consulta de entrada é parametrizada antes da consulta de entrada é enviada para o Optimizador de consultas. Parameterization pode afectar a estimativa de cardinalidade e também poderá impedir a correspondência contra as vistas indexadas e outros tipos de optimizações. A definição de DATE_CORRELATION_OPTIMIZATION faz com que o optimizador procurar correlações entre colunas. Esta definição afecta estimativa cardinalidade e custo.

Ambiente

Reduzir esta tabelaExpandir esta tabela
Sessão SET opções ANSI_NULLS se a definição afecta o "NULL = NULL" expressão for avaliada como true. Estimativa de cardinalidade para associações externas pode mudam consoante a definição actual. Além disso, também poderão alterar expressões ambíguas. Por exemplo, o "col = NULL" expressão for avaliada diferente consoante a definição. No entanto, o "col IS NULL" sempre expressão for avaliada da mesma forma.
Recursos de hardwareO custo para ordenar e hash operadores depende da quantidade relativa de memória que está disponível para o SQL Server. Por exemplo, se o tamanho dos dados for maior do que a cache, o Optimizador de consultas sabe em que os dados devem sempre ser spool no disco. No entanto, se o tamanho dos dados for muito menor do que a cache, a operação é provável que ser efectuado na memória. SQL Server também considera optimizações diferentes se o servidor tiver mais do que um processador e se não tiver sido desactivada parallelism utilizando a opção de configuração máximo grau de parallelism ou uma sugestão "MAXDOP".
Acções do SQL Server manter unidade (UA)Determinadas funcionalidades apenas estão activadas em edições específicas do SQL Server 2005 ou do SQL Server 2008. Por exemplo, correspondência de uma consulta contra as vistas indexadas só ocorre em SQL Server 2005 Enterprise Edition. Do mesmo modo, a correspondência de guias de plano está limitado a SQL Server 2000 Standard Edition e o SQL Server 2005 Enterprise Edition.

Propriedades

Artigo: 914288 - Última revisão: 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 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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