Query

Modalità di elaborazione query e indici columnstore

In questo articolo verranno trattati i due metodi di elaborazione delle query conosciuti come Row mode execution e Batch mode execution per SQL Server 2019. Verrà inoltre descritto un meccanismo per attivare Batch mode execution su SQL Server 2017 anche quando non si possono creare indici columnstore “effettivi”.

Row mode execution

Row mode execution è un metodo di elaborazione delle query utilizzato con le tabelle tradizionali disk-based, in cui i dati vengono archiviati in formato riga. Le tabelle che utilizzano questo tradizionale formato di archiviazione vengono anche dette “rowstore table”. Quando una query viene eseguita e accede ai dati archiviati in formato riga, gli operatori previsti nel piano di esecuzione leggono ogni riga richiesta dalla query. Da ogni riga letta, SQL Server recupera quindi le colonne necessarie, specificate nell’istruzione SELECT, in un predicato di JOIN, in un predicato di filtro, ecc..

Predicati sargable e valori NULL

Sergio Govoni

In questo articolo parleremo del concetto noto con il nome di SARGability arricchendolo di alcune considerazioni sulla trattazione dei valori NULL su cui ho avuto modo di ragionare dopo aver partecipato ad una sessione di Itzik Ben-Gan e dalla quale ho tratto ispirazione.

Wikipedia definisce Sargable una condizione (o predicato) di una query se l’engine del DBMS può sfruttare un indice per accelerare l’esecuzione della query. Il termine Sargable deriva dalla contrazione di Search ARGument ABLE.

SQL Sentry Plan Explorer: Una sola release per tutti, gratuita!

Chi si occupa di ottimizzare le performance delle query in SQL Server ha sicuramente avuto modo di apprezzare i tool della famiglia “Plan Explorer”, prodotti da SQL Sentry e rivolti sia agli sviluppatori che ai DBA per effettuare analisi approfondite sui piani di esecuzione in SQL Server.

Fino a qualche giorno fa, i tool della famiglia Plan Explorer erano suddivisi in:

  • Plan Explorer (versione gratuita)
  • Plan Explorer PRO (versione a pagamento)
  • Plan Explorer ULTIMATE (con le funzionalità della versione PRO arricchite di due nuove feature: Index Analysis e Performance Profiling, a pagamento)

Greg Gonzalez (@SQLsensei), CEO di SQL Sentry, invece di aumentare le feature a pagamento ha deciso di fondere i tre prodotti in un unico strumento, con tutte le funzionalità, gratuito per tutti gli utenti!

Query Performance Insight su Azure SQL Database

Pasquale Ceglie

Query Performance Insight

Tenere sotto controllo le prestazioni e lo “stato di salute” di un database non è semplice e talvolta richiede parecchio tempo.

Query Performance Insight offre la possibilità di verificare il consumo in DTU del database, individuare le query più costose in termini di DTU che potrebbero quindi influire negativamente sulle prestazioni e infine eseguire “drill down” sulle query per visualizzarne tutti i dettagli.

[highlight color=“yellow”]N.B.: Query Performance Insight è in modalità anteprima ed è attivabile solo tramite Azure Preview Portal[/highlight]

Live Query Statistics anche con SQL Server 2014 SP1

Davide Mauri

Una delle (tante) novità introdotte in SQL Server 2016 sono le Live Statistics che permettono di vedere lo stato di esecuzione di una query in tempo reale. Oltre che essere visivamente molto accattivante, la funzionalità è utile per capire quale parte di una query complessa deve essere ottimizzata.

Live Query Statistics

Quello che con tutti sanno è che la funzionalità è basata su una feature inserita già dalla SP1 di SQL Server 2014, la DMV

Query Tuning Mastery

Sergio Govoni

Sul canale SQLPASS TV, continua la pubblicazione delle sessioni erogate al PASS Summit 2011. Questa settimana è stata pubblicata la sessione “Query Tuning Mastery: Zen and the Art of Workspace Memory” tenuta da Adam Machanic.

Abstract

As SQL Server professionals, we often think of memory in vague, instance-level terms: buffer pool, procedure cache, Virtual Address Space, and so on. But certain tasks require a more in-depth focus, and query tuning is one of them. Large, complex queries need memory in which to work –workspace memory– and understanding the how’s, when’s, and why’s of this memory can help you create queries that run in seconds rather than minutes. This session will teach you how to guide the query processor to grant enough memory for top performance, while also keeping things balanced for the sake of concurrency. You will learn advanced monitoring techniques, expert-level application of specialized query hints, and the memory internals needed to put it all together. If you work with large queries and are serious about achieving scalability and consistently great performance, you owe it to yourself to attend this session.