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

Unit testing: Come scrivere la tua prima unit test!

Nell’articolo precedente, il secondo di questa serie, abbiamo descritto come installare il framework tSQLt, il …