Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sintomas

Considere o seguinte cenário:

  • Um servidor vinculado é configurado entre um servidor local e um servidor remoto que têm instâncias do Microsoft SQL Server 2012.

  • O servidor local é configurado usando um agrupamento, como um agrupamento de maiusculas e minúsculas.

  • O servidor remoto tem um objeto que é configurado em um agrupamento diferente do servidor local, como agrupamento diferencia maiusculas de minúsculas.

  • Uma conexão é feita do driver JDBC da Microsoft para SQL Server, o driver ODBC do Microsoft SQL Server, o provedor SQL OLE DB ou o SQL Native Client para o servidor local.

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

  • A consulta atualiza uma tabela no servidor remoto. Isso inclui um objeto de coluna que usa um agrupamento diferente do servidor local.

Nesse cenário, você pode enfrentar desempenho lento da execução da consulta. Se você verificar o plano de execução da consulta atualização, você pode ver que uma verificação remota é executada na tabela no servidor remoto sem filtragem. Portanto, a consulta pode executar muitas leituras quando ele examina a tabela remota e, em seguida, recupera todas as linhas de volta para o servidor local.

Por exemplo, a consulta é preparada no servidor local que tenha um agrupamento padrão e o servidor remoto tem uma tabela T1 que contém uma coluna que diferenciam maiusculas de minúsculas. A atualização examina todas as linhas de 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 atualização preparado examinará a tabela remota quando o agrupamento não corresponde em ambos os servidores.

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com as atualização cumulativa anterior. Confira as mais recentes atualizações cumulativas para o SQL Server:


Informações sobre o hotfixUm hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir somente o problema descrito neste artigo. Aplique este hotfix somente aos sistemas que apresentarem esse problema específico.

Se o hotfix estiver disponível para download, há uma seção "Download de Hotfix disponível" na parte superior deste artigo da Base de Conhecimento. Se essa seção não for exibida, envie uma solicitação ao suporte e atendimento ao cliente Microsoft para obter o hotfix.

Observação: caso outros problemas estejam ocorrendo ou caso qualquer solução de problemas seja necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não sejam específicos deste hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e suporte ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportObservação: o formulário "Baixar Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Caso você não veja seu idioma, é porque um hotfix não está disponível para esse idioma.

Pré-requisitos:Para aplicar esse hotfix, você deve ter o SQL Server 2012 instalado.

Informações do registro:Você não precisa alterar o registro após aplicar esse hotfix.

Informações de substituição do hotfix:Esse hotfix não substitui outros hotfixes.


Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Solução alternativa

Trabalhar multiplicam o problema, use um dos seguintes métodos:

  • Não use instruções preparadas no código de origem do aplicativo cliente. Você pode usar instruções de ad-hoc ou instruções que pode ser chamadas como procedimentos armazenados em vez disso, se o driver oferece suporte a essas interfaces.

  • Use agrupamento correspondente em ambos os servidores.

Mais informações

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

Você pode usar um dos métodos a seguir para ativar o sinalizador de rastreamento:

  • Antes de iniciar o SQL Server, use o Gerenciador de configuração do Microsoft SQL Server, clique com botão direito a instância afetada e adicionar o parâmetro de inicialização -T4199 para que ele persista entre reinicializações e todas as conexões com a instância no futuro.

  • Habilitar dinamicamente a configuração em tempo de execução quando o serviço é iniciado e globalmente para todas as conexões "(-1)." Certifique-se de liberar o cache de procedimento, se você planeja fazer testes com o switch ligado ou desligado.

    Use o seguinte para ativar a configuração dinamicamente e globalmente:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Use o seguinte para desativar a configuração dinamicamente e globalmente:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×