KB3191487-miglioramento della stabilità di SQL Server e dell'esecuzione di query simultanee per alcune query columnstore in SQL Server 2014 e 2016

Sintomi

Considerare lo scenario descritto di seguito:

  • Si dispone di una tabella in cui sono presenti indici columnstore raggruppati e nella tabella sono presenti molte colonne (in centinaia).

  • I dati (tipo di dati) di queste colonne sono dati altamente compressibili, ad esempio varchar.

  • Si esegue un'istruzione Select in questa tabella per selezionare un sottoinsieme di grandi dimensioni o tutte le colonne della tabella.

  • L'istruzione Select include una clausola where che ne limita l'output a poche righe (la query è altamente selettiva).

In questo scenario, potresti riscontrare uno o tutti i sintomi seguenti:

  • Il carico di lavoro simultaneo (altre query eseguite contemporaneamente sul server come questa query) può avere un calo delle prestazioni e della perdita della velocità effettiva.

  • È possibile che venga visualizzato un uso elevato della CPU.

  • Se si esegue una query sys.dm_os_ring_buffers e si visualizzano voci di tipo SchedulerMonitor , viene visualizzato un messaggio di errore "non cedente", registrato durante il periodo di esecuzione della query.

  • Potrebbe essere visualizzato un errore di utilità di pianificazione non restituendo nel log degli errori e potrebbe essere generato un file di dump della memoria sintomo.

Risoluzione

Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server:

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:

Ulteriori informazioni

Risolvere i dettagliI lavoratori che elaborano i segmenti di colonna (decomprimerli e analizzarli per le righe idonee) usati per "restituire" l'utilizzo della CPU ad altri lavoratori/esecuzioni di query simultanee quando viene restituito un determinato numero di righe. Quando la clausola where è stata altamente selettiva per produrre poche righe, i dipendenti che elaborano questa query elaborano un numero elevato di segmenti non compressi (perché pochissime righe si qualificano) prima di rinunciare alla CPU in modo cooperativo per consentire ad altri lavoratori di elaborare il proprio carico di lavoro. Questo portò a un uso irregolare della CPU e alla degradazione della velocità di lavoro simultaneo. La correzione ottimizza e migliora l'algoritmo di condivisione della CPU per tali query columnstore.

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×