Home > Articoli > Big Query Gateway in SQL Server 2016

Big Query Gateway in SQL Server 2016

Forse non tutti sanno che quando una query viene compilata (ossia viene prodotto il piano di esecuzione) SQL Server deve procedere ad allocare diversa memoria per fare in modo che tutte le fasi della compilazione (parsing, algebrization, optimization)  possano essere effettivamente compiute.

La quantità di memoria necessaria varia durante la compilazione in funzione della complessità della query e di che grado di ottimizzazione deve essere applicata. Per evitare che una singola query possa consumare tutta la memoria disponibile e quindi rendere il sistema instabile, ci sono tre “gateway” che governano quante query possono essere compilate simultaneamente in funzione della quantità di memoria di cui necessitano.

Fino a SQL Server 2016 query che necessitavano di molta RAM, venivano limitate ad una sola compilazione per volta, e questo, nel caso di più una query complessa da compilare porta all’attesa della query sul wait type 

RESOURCE_SEMAPHORE_QUERY_COMPILE

Dato che l’aumentare dei dati e della complessità dei database porta a scrivere query sempre più complesse, in SQL Server 2016 è stato deciso di modificare questo comportamento, per renderlo più dinamico e quindi più adatto alle esigenze moderne. Qui il dettaglio direttamente dal team di sviluppo:

Multi-fold increase in throughput for big gateway query compiles in SQL Server

Chi è Davide Mauri

Microsoft Data Platform MVP dal 2007, Davide Mauri si occupa di Data Architecture e Big Data nel mondo dell'IoT. Attualmente ricopre il ruolo di "Director Software Development & Cloud Infrastructure" in Sensoria, societa specializzata nella creazione di Wearables e sensori per l'IoT applicati a tessuti ed oggetti sportivi.

Leggi Anche

PASS Marathon BI (Dicembre 2019): Sessioni registrate!

Le sessioni presentate durante l’evento PASS Marathon “Edizione BI”, tenuto lo scorso 11 Dicembre 2019, …