Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sintomas

Considere o seguinte cenário:

  • Um servidor ligado está configurado entre o servidor local e um servidor remoto que ambas têm instâncias de 2012 do Microsoft SQL Server.

  • O servidor local é configurado através da utilização de um agrupamento, por exemplo, um agrupamento de maiúsculas e minúsculas.

  • O servidor remoto tem um objecto que está configurado um agrupamento diferente do servidor local, tal como o agrupamento entre maiúsculas e minúsculas.

  • É estabelecida uma ligação a partir do controlador JDBC da Microsoft para o SQL Server, controlador Microsoft ODBC para SQL Server, o fornecedor SQL OLE DB ou o SQL Native Client para o servidor local.

  • O controlador executa uma consulta de actualização do Transact-SQL como uma instrução preparada que chama o procedimento de sp_prepexec armazenados no servidor local.

  • A consulta actualiza uma tabela no servidor remoto. Isto inclui um objecto de coluna que utiliza um agrupamento diferente do servidor local.

Neste cenário, poderá detectar um desempenho lento do que a execução da consulta. Se verificar o plano de execução da consulta de actualização, poderá ver que uma análise remota é efectuada no quadro do servidor remoto sem filtragem. Por conseguinte, a consulta pode efectuar muitas leituras quando verifica a tabela remota e, em seguida, obtém todas as linhas para o servidor local.

Por exemplo, a consulta é preparada no servidor local com o agrupamento de maiúsculas e minúsculas predefinido e o servidor remoto tem uma tabela T1 que contenha uma coluna que estão entre maiúsculas e minúsculas. A actualização irá analisar todas as linhas do T1.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Causa

O problema ocorre porque a consulta de actualização preparada pesquisará a tabela remota quando o agrupamento não corresponde em ambos os servidores.

Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas na anterior actualização cumulativa. Verifique as actualizações cumulativas mais recentes para o SQL Server:


Informações sobre correçãoExiste uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.

Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentado, submeta um pedido de suporte e serviço de cliente Microsoft para obter a correcção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitosPara aplicar esta correcção, tem de ter o SQL Server 2012 instalado.

Informações de registoNão tem de alterar o registo depois de aplicar esta correcção.

Informações sobre substituição da correçãoEsta correcção não substitui quaisquer outras correcções.


Estado

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

Solução alternativa

Para trabalhar abound o problema, utilize um dos seguintes métodos:

  • Não utilize as instruções preparadas no código de origem da aplicação de cliente. Pode utilizar instruções ad hoc ou instruções pode ser chamadas como procedimentos armazenados em vez disso, se o controlador suporta as interfaces.

  • Utilize agrupamento correspondente em ambos os servidores.

Mais informações

Para activar o sinalizador de rastreio, adicione o parâmetro de arranque -T4199 ou TRACEON(4199,-1) de DBCC antes a instrução preparada é compilada para activar o comportamento.

Pode utilizar um dos seguintes métodos para activar o sinalizador de rastreamento:

  • Antes de iniciar o SQL Server, utilize o Gestor de configuração do Microsoft SQL Server, com o botão direito a instância afectada e adicione o parâmetro de arranque -T4199 , de modo a que persistir através de reinícios e todas as ligações para a instância no futuro.

  • Activar dinamicamente a definição em tempo de execução quando o serviço é iniciado e globalmente para todas as ligações "(-1)." Certifique-se de que livre a cache de procedimentos se tencionar efectuar ensaios com o parâmetro activada ou desactivada.

    Utilize o seguinte para activar a definição global e dinamicamente:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Utilize o seguinte para desactivar a definição global e dinamicamente:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×