FIX: Riduzione delle prestazioni quando si utilizzano variabili di tabella in SQL Server 2012 o SQL Server 2014

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2952444
Sintomi
Quando si inserire una variabile di tabella con molte righe e quindi associarlo con altre tabelle, query optimizer potrebbe scegliere un piano di query inefficienti, che potrebbe rallentare le prestazioni delle query.
Risoluzione
Dopo avere applicato questo hotfix, è possibile attivare il flag di traccia 2453 per consentire a una variabile di tabella attivare recompile quando vengono modificato sufficiente numero di righe. Ciò può consentire a query optimizer scegliere un piano più efficiente.

Il problema è stato corretto nell'aggiornamento cumulativo seguente o / e Service Pack per SQL Server.

Aggiornamento cumulativo 3 per SQL Server 2014

Informazioni sugli aggiornamenti cumulativi per SQL Server

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

Service pack 2 per SQL Server 2012

Sui Service Pack per SQL Server

I Service Packs sono cumulativi. Ogni nuovo service pack contiene tutte le correzioni presenti nelle versioni precedenti, oltre alle nuove. È consigliabile applicare il service pack più recente e l'aggiornamento cumulativo più recente per il service pack. Non è necessario installare i service packs precedenti prima di installare il service pack più recente. Per reperire ulteriori informazioni sui service pack più recente aggiornamento cumulativo più recente, utilizzare la tabella 1 nel seguente articolo:

Informazioni
Quando si utilizza una variabile di tabella in un batch o una procedura, la query viene compilata e ottimizzata per lo stato di vuoto iniziale della variabile di tabella. Se questa variabile di tabella viene popolata con molte righe in fase di esecuzione, il piano di query precedentemente compilata potrebbe non essere più ottimale. Ad esempio, la query può far parte di una variabile di tabella con ciclo nidificato poiché è in genere più efficace per un numero limitato di righe. Il piano di query può risultare inefficace se la variabile di tabella con milioni di righe. Un hash join può essere una scelta migliore in tali condizioni. Per ottenere un nuovo piano di query, è necessario ricompilare. A differenza di altri utenti o le tabelle temporanee, tuttavia, modifica numero di riga in una variabile di tabella non attiva la ricompilazione della query. In genere, è possibile aggirare questo problema con OPTION (RECOMPILE), che ha un proprio costo generale.
Il flag di traccia 2453 consente il vantaggio di ricompilazione di query senza OPTION (RECOMPILE). Questo flag di traccia diverso da OPTION (RECOMPILE) due aspetti principali.
(1) viene utilizzata la stessa soglia conteggio righe delle altre tabelle. La query non devono essere compilate per ogni esecuzione, a differenza di OPTION (RECOMPILE). Attiverà ricompilare solo quando la modifica della riga conteggio supera la soglia prestabilita.
(2) opzione (RECOMPILE) impone la query per visualizzare i parametri e ottimizza la query. Questo flag di traccia non impone la lettura di parametro.

Nota questo flag di traccia deve essere ON in fase di esecuzione. È possibile utilizzare questo flag di traccia con QUERYTRACEON. Questo flag di traccia deve essere utilizzato con cautela in quanto è possibile aumentare del numero di ricompilazioni di query che potrebbe costare più di risparmio da migliore ottimizzazione delle query.
Status
Microsoft ha confermato che questo è un problema per i prodotti Microsoft elencati nella sezione "Si applica a".

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2952444 - Ultima revisione: 02/22/2016 06:59:00 - Revisione: 3.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2952444 KbMtit
Feedback