A Microsoft distribui o Microsoft SQL Server 2 (SP2) ou o Microsoft SQL Server 2008 R2 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SQL Server 2008 SP2 ou SQL Server 2008 R2.
Sintomas
Considere o seguinte cenário:
-
Cria um servidor ligado num computador que está a executar o Microsoft SQL Server 2008 ou o Microsoft SQL Server 2008 R2. O servidor ligado aponta para uma fonte de dados OLE DB num servidor remoto.
-
Executou uma consulta distribuída que utiliza alguns objetos de dados no servidor ligado.
-
Executa algumas operações num servidor remoto e as operações causam mais de cinco atualizações de versão de esquema nos objetos de dados. Por exemplo, reconstrói o índice de uma tabela no servidor remoto para atualizar a versão de esquema da tabela no servidor ligado.Nota Realizas as operações antes da próxima execução da consulta.
-
Volte a executar a consulta distribuída no servidor ligado.
Neste cenário, a consulta não é recompilada, e você recebe uma mensagem de erro que se assemelha ao seguinte:
Servidor: Msg 7359, Level Level Number, State Number, Line NumberThe OLE DB provider " ProviderName" para servidor ligado " LinkedServer Name" reportou uma alteração na versão de esquema entre o tempo de compilação (" Tempode compilação") e o tempo de execução (" Tempo deexecução") para a tabela "Linked Table Name".
Notas
-
O Nome do Fornecedor é um espaço reservado para o nome do fornecedor OLE DB.
-
Linked Table Name é um espaço reservado para o nome da tabela que é consultado no servidor ligado.
-
As seguintes declarações podem normalmente alterar a versão do esquema:
-
TABELA ALTER
-
CRIAR ÍNDICE
-
ÍNDICE DE QUEDA
-
DBCC REINDEX
-
Causa
Esta questão ocorre porque se alcança um limite de compensação para consultas. Quando uma alteração é feita ao esquema, alguns objetos na cache são largados e a consulta requer uma operação de recompilação. No entanto, é alcançado um limite máximo para a recompilagem depois de serem feitas mais de cinco alterações que atualizam a versão do esquema. Portanto, o problema que é mencionado na secção "Sintomas" ocorre.
Resolução
Informação de atualização cumulativa
SQL Server 2008 R2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 11. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2633145 Pacote de atualização cumulativa 11 para SQL Server 2008 R2 Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
981356 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2
Sql Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 4 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2633146 Pacote de atualização cumulativo 4 para SQL Server 2008 R2 Service Pack 1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2008 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2567616 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 1
Pacote de serviço SQL Server 2008 3
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 1 para SQL Server 2008 Service Pack 3. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2617146 Pacote de atualização cumulativo 1 para SQL Server 2008 Service Pack 3Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2008. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2629969 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 Service Pack 3 Os hotfixes do Microsoft SQL Server 2008 são criados para pacotes específicos de serviços sql Server. Tem de aplicar um hotfix SQL Server 2008 Service Pack 3 a uma instalação do SQL Server 2008 Service Pack 3. Por predefinição, qualquer hotfix que seja fornecido num pacote de serviços SQL Server está incluído no próximo pacote de serviços sql Server.
Pacote de atualização cumulativo 6 para SQL Server 2008 SP2
A correção para este problema foi lançada pela primeira vez no pacote de atualização cumulativo 6. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 SP2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2582285 Pacote de atualização cumulativo 6 para SQL Server 2008 Service Pack 2Nota Como as construções são cumulativas, cada nova versão da atualização contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior lançamento da atualização SP2 SP2 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de atualização que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2402659 O SQL Server 2008 constrói que foram lançados após o lançamento do SQL Server 2008 SP2
Solução
Para contornar este problema, utilize um dos métodos seguintes:
-
Executar a declaração DBCC FREEPROCCACHE('Plan_Handle'). Para mais informações sobre o parâmetro Plan_Handle, visite o seguinte site da MSDN:
-
Executar o procedimento armazenado sp_refreshView 'ViewName'.Nota Este método não funciona se o pacote de atualização cumulativa 3 para o SQL Server 2008 SP2 for instalado.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".