DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 970014 - Última revisão: terça-feira, 21 de Julho de 2009 - Revisão: 1.1

 
A Microsoft distribui correcções Microsoft SQL Server 2008 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento.

Sintomas

No SQL Server 2008, depois de activar a funcionalidade de Recolectores de dados, a base de armazém de dados de gestão de dados for muito grande e poderá exaustão do espaço em disco.

Além disso, se executar as consultas seguintes, localizar linhas isoladas nas tabelas snapshots.notable_query_plan ou snapshots.notable_query_text:
SELECT COUNT(*)
FROM snapshots.notable_query_plan AS qp 
        WHERE NOT EXISTS (
            SELECT * 
            FROM snapshots.query_stats AS qs
            WHERE qs.[sql_handle] = qp.[sql_handle] AND qs.plan_handle = qp.plan_handle 
                AND qs.plan_generation_num = qp.plan_generation_num 
                AND qs.statement_start_offset = qp.statement_start_offset 
                AND qs.statement_end_offset = qp.statement_end_offset 
                AND qs.creation_time = qp.creation_time);
SELECT COUNT(*)
FROM snapshots.notable_query_text AS qt
WHERE NOT EXISTS (
            SELECT * 
            FROM snapshots.query_stats AS qs
            WHERE qs.[sql_handle] = qt.[sql_handle]);

Causa

O processo de eliminação genérico elimina os dados que corresponde a um ID de instantâneo específico. No entanto, as linhas de plano de consulta e as linhas de texto de consulta não correspondem a um ID de instantâneo específico. Por este motivo, estas linhas não são eliminadas pelo processo de eliminação genérico.

Resolução

SQL Server 2008

importante Tem de utilizar esta correcção se estiver a executar a versão do SQL Server 2008.

A correcção deste problema primeiro foi disponibilizada em 6 de actualização cumulativa. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
971490  (http://support.microsoft.com/kb/971490/ ) Pacote de actualização cumulativa 6 para o SQL Server 2008
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento. Recomendamos que considere aplicar a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
956909  (http://support.microsoft.com/kb/956909/ ) O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008

SQL Server 2008 Service Pack 1

importante Tem de utilizar esta correcção se estiver a executar o SQL Server 2008 Service Pack 1.

A correcção para este problema foi disponibilizada pela primeira vez na actualização cumulativa 4 para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre este pacote de actualização cumulativa, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
973602  (http://support.microsoft.com/kb/973602/LN/ ) Pacote de actualização cumulativa 4 para o SQL Server 2008 Service Pack 1
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2008 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
970365  (http://support.microsoft.com/kb/970365/LN/ ) O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 correcções são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

Como contornar

To work around this problem, use the following scripts in the Management Data Warehouse database to delete these orphan rows:
-- Purge snapshots.notable_query_plan table 
DECLARE @delete_batch_size bigint;
    DECLARE @rows_affected int;
    SET @delete_batch_size = 500;
    SET @rows_affected = @delete_batch_size;
    WHILE (@rows_affected = @delete_batch_size)
    BEGIN
        DELETE TOP (@delete_batch_size) snapshots.notable_query_plan 
        FROM snapshots.notable_query_plan AS qp 
        WHERE NOT EXISTS (
            SELECT * 
            FROM snapshots.query_stats AS qs
            WHERE qs.[sql_handle] = qp.[sql_handle] AND qs.plan_handle = qp.plan_handle 
                AND qs.plan_generation_num = qp.plan_generation_num 
                AND qs.statement_start_offset = qp.statement_start_offset 
                AND qs.statement_end_offset = qp.statement_end_offset 
                AND qs.creation_time = qp.creation_time);
        SET @rows_affected = @@ROWCOUNT;
        RAISERROR ('Deleted %d orphaned rows from snapshots.notable_query_plan', 0, 1, @rows_affected) WITH NOWAIT;
    END;

    -- Purge snapshots.notable_query_text table
    SET @rows_affected = @delete_batch_size;
    WHILE (@rows_affected = @delete_batch_size)
    BEGIN
        DELETE TOP (@delete_batch_size) snapshots.notable_query_text 
        FROM snapshots.notable_query_text AS qt
        WHERE NOT EXISTS (
            SELECT * 
            FROM snapshots.query_stats AS qs
            WHERE qs.[sql_handle] = qt.[sql_handle]);
        SET @rows_affected = @@ROWCOUNT;
        RAISERROR ('Deleted %d orphaned rows from snapshots.notable_query_text', 0, 1, @rows_affected) WITH NOWAIT;
    END;

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Referências

Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
935897  (http://support.microsoft.com/kb/935897/ ) Um modelo de assistência incremental está disponível a equipa do SQL Server para proporcionar correcções para problemas comunicados


Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499  (http://support.microsoft.com/kb/822499/ ) Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server


Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbexpertiseadvanced kbqfe kbfix KB970014 KbMtpt
Tradução automáticaTraduçã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: 970014  (http://support.microsoft.com/kb/970014/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft