KB3024815 - La compilazione di query di grandi dimensioni attende RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014

Si applica a
SQL Server 2014 Business Intelligence - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

Sintomi

Quando si tenta di eseguire più query di grandi dimensioni contemporaneamente in Microsoft SQL Server 2014, alcune query potrebbero attendere RESOURCE_SEMAPHORE_QUERY_COMPILE. Solo una query che richiede più memoria rispetto alla soglia del gateway grande (come fornito dall'output del comando DBCC MEMORYSTATUS) per la compilazione può procedere, anche se il server dispone di memoria sufficiente.

Nota: si tratta di un comportamento previsto. Tuttavia, nei sistemi batch di grandi dimensioni, ad esempio un data warehouse, ciò potrebbe ridurre le prestazioni nell'esecuzione simultanea di molte query.

Risoluzione

Informazioni sull'aggiornamento cumulativo

Il problema è stato risolto per la prima volta nell'aggiornamento cumulativo seguente di SQL Server.

Consiglio: installare l'aggiornamento cumulativo più recente per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:

Questo aggiornamento rapido introduce un nuovo flag di traccia: T 6498. Questo flag di traccia consente a più di una compilazione di query di grandi dimensioni di accedere al grande gateway quando è disponibile memoria sufficiente. Si basa sull'80% della memoria di destinazione di SQL Server e consente una compilazione di query di grandi dimensioni per 25 gigabyte (GB) di memoria. Ad esempio, ciò consente due compilazioni di query di grandi dimensioni in un computer con memoria di destinazione da 64 GB.

Dopo aver applicato questo aggiornamento rapido (hotfix), è necessario abilitare il flag di traccia -T 6498 per abilitare il nuovo comportamento.

Nota: se si abilita il flag di traccia utilizzando il comando DBCC TRACEON, non è necessario riavviare il server per rendere effettivo il flag di traccia. Tuttavia, l'applicazione della nuova configurazione del gateway di grandi dimensioni potrebbe richiedere 10 secondi.

 Un aggiornamento rapido supportato è disponibile da Microsoft. Tuttavia, questo aggiornamento rapido (hotfix) ha lo scopo di correggere solo il problema descritto in questo articolo. Applica questo aggiornamento rapido (hotfix) solo ai sistemi in cui si verifica questo problema specifico.

Se l'hotfix è disponibile per il download, c'è una sezione "Download di hotfix disponibile" all'inizio di questo articolo della Knowledge Base. Se questa sezione non viene visualizzata, inviare una richiesta al servizio clienti e supporto tecnico Microsoft per ottenere l'aggiornamento rapido (hotfix).

Nota: se si verificano ulteriori problemi o se è necessaria una risoluzione dei problemi, potrebbe essere necessario creare una richiesta di assistenza separata. I normali costi di supporto verranno applicati alle domande di supporto aggiuntive e ai problemi che non si qualificano per questo aggiornamento rapido specifico. Per un elenco completo dei numeri di telefono del servizio clienti e del supporto tecnico Microsoft o per creare una richiesta di servizio separata, visita il seguente sito Web Microsoft:

/contactus/?ws=support Nota: nel modulo "Download dell'aggiornamento rapido disponibile" vengono visualizzate le lingue per cui è disponibile l'aggiornamento rapido (hotfix). Se la lingua non è visualizzata, è perché non è disponibile un aggiornamento rapido (hotfix).

Altre informazioni

CausaSQL Server usa i gateway di compilazione per limitare le compilazioni. L'architettura del gateway è un modo per SQL Server di tenere sotto controllo l'utilizzo della memoria per la compilazione delle query in ingresso. Ci sono tre porte: piccola, media e grande.

Per ulteriori informazioni su come utilizzare il comando DBCC MEMORYSTATUS per monitorare l'utilizzo della memoria, vedere KB 907877: Come utilizzare il comando DBCC MEMORYSTATUS per monitorare l'utilizzo della memoria in SQL Server 2005.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".