Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Si consideri lo scenario seguente:

  • Viene configurato un server collegato tra un server locale e un server remoto che entrambi dispongono di istanze di Microsoft SQL Server 2012.

  • Il server locale viene configurato tramite un confronto, ad esempio le regole di confronto senza distinzione tra.

  • Il server remoto è un oggetto che viene configurato in un confronto diverso dal server locale, ad esempio le regole di confronto tra maiuscole e minuscole.

  • Connessione dal driver JDBC di Microsoft per SQL Server, il driver Microsoft ODBC per SQL Server, il provider OLE DB SQL o SQL Native Client al server locale.

  • Il driver esegue una query di aggiornamento di Transact-SQL come un'istruzione preparata che chiama la routine sp_prepexec memorizzati sul server locale.

  • La query viene aggiornata una tabella sul server remoto. Ciò include un oggetto colonna che utilizza regole di confronto diverse dal server locale.

In questo scenario, possono verificarsi un rallentamento delle prestazioni di esecuzione della query. Se si seleziona il piano di esecuzione di query di aggiornamento, si può vedere che viene eseguita una scansione remota sulla tabella nel server remoto senza filtro. Di conseguenza, la query può eseguire molte letture analizza la tabella remota e quindi recupera tutte le righe al server locale.

Ad esempio, viene preparata la query sul server locale che dispone di regole di confronto predefinite senza maiuscole/minuscole e il server remoto ha la tabella T1 che contiene una colonna che fanno distinzione tra maiuscole. L'aggiornamento analizzerà tutte le righe di 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

Il problema si verifica perché la query di aggiornamento preparato analizzerà la tabella remota quando le regole di confronto non corrisponde in entrambi i server.

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutte le correzioni di protezione che sono state incluse nell'aggiornamento cumulativo precedente. Estrarre gli ultimi aggiornamenti cumulativi per SQL Server:


Informazioni sull'hotfixUn hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico.

Se l'hotfix è disponibile per il download, è presente una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, inviare una richiesta al servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix.

Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua, è perché un aggiornamento rapido non è disponibile per tale lingua.

PrerequisitiPer applicare questo hotfix, è necessario disporre di SQL Server 2012 è installato.

Informazioni del Registro di sistemaNon è necessario modificare il Registro di sistema dopo aver applicato questo hotfix.

Informazioni sulla sostituzione dell'aggiornamento rapidoQuesto hotfix non sostituisce eventuali altri aggiornamenti rapidi.


Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Soluzione alternativa

Per utilizzare abbondano il problema, utilizzare uno dei seguenti metodi:

  • Non utilizzare le istruzioni preparate nel codice sorgente dell'applicazione client. È possibile utilizzare istruzioni ad hoc o richiamabile quali stored procedure se il driver supporta tali interfacce.

  • Utilizzare le regole di confronto corrispondenti su entrambi i server.

Ulteriori informazioni

Per attivare il flag di traccia, aggiungere il parametro di avvio -T4199 o TRACEON(4199,-1) di DBCC prima istruzione preparata viene compilata per abilitare il comportamento.

Per attivare il flag di traccia, è possibile utilizzare uno dei seguenti metodi:

  • Prima di avviare SQL Server, utilizzare Gestione configurazione di Microsoft SQL Server, fare l'istanza interessata e aggiungere il parametro di avvio -T4199 in modo da essere mantenuto in futuro attraverso riavvii e in tutte le connessioni all'istanza.

  • Attivare in modo dinamico l'impostazione in fase di esecuzione dopo che il servizio inizia e globalmente per tutte le connessioni "(-1)." Assicurarsi di liberare la cache delle procedure, se si prevede di eseguire test con l'opzione attivata o disattivata.

    Utilizzare la seguente per attivare l'impostazione a livello globale e in modo dinamico:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Utilizzare la seguente per disattivare l'impostazione a livello globale e in modo dinamico:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×