A Microsoft distribui o Microsoft SQL Server 2008 R2 SP1 corre uma correção como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2 SP1.
Sintomas
Considere o seguinte cenário:
-
Um banco de dados do Management data warehouse (MDW) tem uma tabela snapshots.query_stats que contém uma grande quantidade de dados no Microsoft sql Server 2008 ou no Microsoft sql Server 2008 R2.
-
Você deve executar o seguinte trabalho do coletor de dados para limpar dados do banco de dados do MDW.
mdw_purge_data_ [ nome do banco de dados do<MDW>]
Nesse cenário, demora muito tempo para o trabalho do coletor de dados limpar os dados. Observações
-
O trabalho do coletor de dados chama o procedimento armazenado Core.sp_purge_data para limpar dados.
-
Para obter mais informações sobre esse problema no SQL Server 2008 R2, acesse o seguinte site da Microsoft:
Informações gerais sobre esse problema no SQL Server 2008 R2
Causa
Esse problema ocorre porque o trabalho mdw_purge_data demora muito para executar uma operação de limpeza orientada em lote se a tabela snapshots.query_stats contém uma grande quantidade de dados.
Resolução
Informações do Service Pack
SQL Server 2008Para solucionar esse problema no SQL Server 2008, siga estas etapas:
-
Obtenha o Service Pack mais recente para o SQL Server 2008. para obter mais informações, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
968382 Como obter o Service Pack mais recente para o SQL Server 2008
-
Para um banco de dados existente do MDW, você deve atualizá-lo executando o assistente para configurar data warehouse de gerenciamento após a instalação do Service Pack mais recente do SQL Server 2008.
SQL Server 2008 R2Para solucionar esse problema no SQL Server 2008 R2, siga estas etapas:
-
Obtenha o Service Pack mais recente para o SQL Server 2008 R2. Para obter mais informações, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2527041 Como obter o Service Pack mais recente para o SQL Server 2008 R2
-
Para um banco de dados existente do MDW, você deve atualizá-lo executando o assistente de configuração de data warehouse de gerenciamento após a instalação do Service Pack mais recente para SQL Server 2008 R2
-
Atualize o sp_purge_orphaned_notable_query_text procedimento armazenado da seguinte maneira:procedimento existente
-- Deleting TOP N orphaned rows in query plan table by joining info from temp table variable-- This is done to speed up delete query. DELETE TOP (@delete_batch_size) snapshots.notable_query_plan FROM snapshots.notable_query_plan AS qp , #tmp_notable_query_plan AS tmpWHERE tmp.[sql_handle] = qp.[sql_handle]
Procedimento atualizado
-- Deleting TOP N orphaned rows in query text table by joining info from temp table-- This is done to speed up delete query. DELETE TOP (@delete_batch_size) snapshots.notable_query_text FROM snapshots.notable_query_text AS qt, #tmp_notable_query_text AS tmpWHERE tmp.[sql_handle] = qt.[sql_handle]
Observação Essas alterações são necessárias para corrigir o texto do procedimento armazenado sp_purge_orphaned_notable_query_text porque a instrução DELETE referencia incorretamente a tabela snapshots.notable_query_plan após a aplicação do SQL Server 2008 R2 Service Pack 1.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
O script completo para atualizar o procedimento armazenado do coletor de dados também pode ser encontrado no seguinte blog: