Saverio Lorenzini PFE Principal Engineer Microsoft Italia

Slides:



Advertisements
Presentazioni simili
Cache Memory Prof. G. Nicosia University of Catania
Advertisements

1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
Un DataBase Management System (DBMS) relazionale client/server.
Raffaele Cirullo Head of New Media Seconda Giornata italiana della statistica Aziende e bigdata.
J0 1 Marco Ronchetti - Corso di Formazione Sodalia – Febbraio 2001 – Modulo Web Programming Tomcat configuration.
BRISCOLA GO ON AVANTI. Storia I giochi di carte hanno le origini più disparate e vengono collocati in differenti epoche, la Briscola risale al La.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
Players: 3 to 10, or teams. Aim of the game: find a name, starting with a specific letter, for each category. You need: internet connection laptop.
REGIONE AUTONOMA FRIULI VENEZIA GIULIA PROTEZIONE CIVILE DELLA REGIONE
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
Dynamic SQL.
D2I Modena, 27 Aprile 2001 Progettazione e interrogazione di Data Warehouse (Tema 2) Unità Responsabile: Cosenza Unità Coinvolte: Cosenza - Bologna.
D2I: Integrazione, warehousing e mining di sorgenti eterogenee di dati Tema2: Progettazione e interrogazione di data warehouse Unità: Bologna, Cosenza.
#sqlsatTorino #sqlsat400 May 23, 2015 Entity Framework 7 Back To The Future Nuove piattaforme, nuovi data store Michael about.me/micdenny.
BaBar Tier A Administration Workshop CCR, Paestum Giugno 2003 Alberto Crescente, INFN Sez. Padova.
SUMMARY Time domain and frequency domain RIEPILOGO Dominio del tempo e della frequenza RIEPILOGO Dominio del tempo e della frequenza.
Mobilità tra i Paesi del Programma KA103 A.A. 2014/2015 (KA103) Mobility Tool+ e il Rapporto Finale Claudia Peritore Roma luglio 2015.
SUMMARY High efficiency motors RIEPILOGO Motori ad alta efficienza RIEPILOGO Motori ad alta efficienza.
SUMMARY Different classes and distortions RIEPILOGO Le diverse classi e le distorsioni RIEPILOGO Le diverse classi e le distorsioni.
Progetti 2015/2016. Proj1: Traduzione di regole snort in regole iptables Snort: – analizza i pacchetti che transitano in rete, confrontandoli con un database.
#sqlsatTorino #sqlsat400 May 23, 2015 Analisi prestazionale (Performance Tuning) in Microsoft SQL Server tramite Dynamic Management Objects Gilberto Zampatti.
Titolo evento Luogo, data Seminario INSPIRE Bologna, luglio 2012 Profili, strumenti ed implementazioni dei metadati Antonio Rotundo Agenzia per l’Italia.
#sqlsatPordenone #sqlsat495 February 27, 2016 SQL Server 2016 Query Store: un nuovo modo di monitorare le query Saverio Lorenzini PFE Principal Engineer.
#sqlsatParma #sqlsat462 November 28°, 2015 SQL Server 2016 Query Store: un nuovo modo di ottimizzare le query Saverio Lorenzini PFE Principal Engineer.
Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Sara Carcangiu Anna Mereu An Optimization Tool for Telecommunication.
Definizione del piano delle attività di progetto L’esperienza CoBaSys Donata Franzi IMT Alti Studi lucca Università degli Studi di Modena e Reggio Emilia.
Silvia Minardi, Pavia 14 December maps and directions hours.
MSc in Communication Sciences Program in Technologies for Human Communication Davide Eynard Facoltà di scienze della comunicazione Università della.
Dyslexia activity Group 2 (Debora Q.) Lesson Outline  This activity is targeted at beginners half way through their first year but it could also work.
1 Accounting DGAS per job MPI Marco Bencivenni (INFN-CNAF) Workshop CCR-INFN GRID Maggio 2010.
Do You Want To Pass Actual Exam in 1 st Attempt?.
UNIFIED MODELING LANGAUGE BASICS
Monitoring e loadbalancing dei servizi Grid
WRITING – EXERCISE TYPES
Salvatore Upload data on Azure SQL Database using Azure Messaging, Stream Analytics & Logic Apps Salvatore
Dichiarazione dei servizi di sito nel GOCDB
Jobs and occupations What do they do?
SQL Server deployment journey da dev a ops
Statute of the ICJ, Article 38
From 8 to 80 boxes. From FBSNG to Condor CPU Satura !
Assegnazione risorse Stato INFN CNAF,
Architetture della Informazione Anno accademico C. Batini 5
Metriche SE monitoring G.Donvito G.Cuscela INFN Bari
JetWalk: Agenda e review committee
C:\zydeckt.exe zydeckt will generate a signing key. Do you also require an encryption key? (y/n) y Pick your DH key size: 1) 1024 bits- High commercial.
PI2S2 Regional Operation Centre Sistema di Supporto Sistema di Monitoring Rita Ricceri Consorzio Cometa Tutorial per Site Administrator Messina,
Grid Monitoring: bacct - lsload
Frequenza di fallimento della terapia di prima linea basata su INI vs
ONEDATA - distributed data caching -
Sviluppo di server web e sistema di caching per contenuti dinamici
Highlights del meeting ESPP di Cracovia Settembre 2012 (FISICA DI G1)
X. Specifications (IV).
PROGRAMMAZIONE BASH – ISTRUZIONE IF
FAQ.
Bubble Sort.
Creare un server casalingo - 2
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Il condizionale.
Summer Village 2004 Frequently, presenters must deliver material of a technical nature to an audience unfamiliar with the topic or vocabulary. The material.
Proposal for the Piceno Lab on Mediterranean Diet
[Nome progetto] Relazione finale
Service Level The Service Level is defined as the percentage of orders cycles in which inventory is sufficient to cover demands, or.
[Nome progetto] Relazione finale
SWORD (School and WOrk-Related Dual learning)
Progettazione concettuale
Laboratorio II, modulo “Skype”.
Accesso al corpus it. / ing. parola cercata sintagmi preposizioni.
A comparison between day and night cosmic muons flux
Microsoft SQL Graph Database
Wikipedia Wikipedia è un'enciclopedia online, collaborativa e libera. Grazie al contributo di volontari da tutto il mondo, Wikipedia ad ora è disponibile.
Transcript della presentazione:

Saverio Lorenzini PFE Principal Engineer Microsoft Italia Troubleshooting delle prestazioni delle query con SQL Server 2016 Query Store Saverio Lorenzini PFE Principal Engineer Microsoft Italia

Sponsors

Organizers getlatestversion.it

About me Saverio Lorenzini Principal Engineer Microsoft Italia Appassionato di SQL Server  sqlSavelor https://blogs.msdn.microsoft.com/savelor/ savelor@microsoft.com

Obiettivo Introdurre il Query Store e illustrarne funzionamento ed utilizzo per un uso semplice, efficace e proficuo. Agenda Un occhio al plan cache di SQL Server Limitazioni delle soluzioni in essere sino a SQL 2014 Architettura di SQL Server Query Store DEMO

Problemi (classici) aperti Quali sono le query che hanno consumato più risorse (CPU, memoria, I/O) in un determinato intervallo di tempo del passato? La settimana scorsa è stata installata una nuova release applicativa, le performance sono peggiorate.. Che fare? Una certa procedura che di solito è molto veloce, da un paio di giorni è lentissima… Che fare? La note scorsa tra le 3:00 e le 3:40 c’è stato un picco di CPU e le procedure sono andate “lunghe”.. Cosa è successo? Quali sono le query che hanno un trend peggiorativo nell’ultima settimana?

SQL Server Plan cache Query Store OS Other Applications RAM Space «Data» Cache RAM Space SQL Server used memory CACHESTORE_OBJCP CACHESTORE_SQLCP CACHESTORE_PHDR CACHESTORE_XPROC Other Caches Buffer pool Thread Stack, DWA Other Applications OS Query Store

Query lifecycle T-SQL Statement Parsing Binding Query optimization Verifica sintassi Parse tree Parse tree Binding Risoluzione dei nomi Algebrized tree Query optimization Cost assessment Plan Cache Estimated plan Query execution Actual plan Results

Che tipo di piani ci sono nel plan cache? Estimated execution plan Generato prima dell’esecuzione, basato solo sulle statistiche già presenti. Estimated Actual Generato prima dell’esecuzione Se la query viene fermata, il piano è già comunque in cache Contiene le stime basati sulle statistiche Veloce ad essere generato La sua generazione non consuma molte risorse Generato dopo dell’esecuzione Se la query viene fermata, il piano non viene generato Contiene dati reali basati sull’ultima esecuzione Lento ad essere generato La sua generazione consuma molte risorse Funzionalmente NON C’E’ DIFFERENZA tra Estimated ed Actual in termini di operatori e di come sono collegati uno all’altro. Estimated ed Actual sono identici, tranne per i dati di contorno (stime o real time) NB:

Come si esplora il plan cache? Sys.dm_exec_cached_plans Sys.dm_exec_query_stats Una riga per ciascun query plan in cache Una riga per ciascun query statement in cache Plan_handle Size Usecounts Type 0x05000400E82333927A.. 3423 45 Adhoc 0x050E1A3400E823327A.. 34678 65 0x067000940EE23823334.. 765 574 0x05000410000E8233E32.. 447757 546 Proc 0x03900C10300E823327A.. 7566 1986 Prepared 0x06100090400E82A327A.. 66767 56444 0x0555E3000400E843A27A.. 6744 66 proc Plan_handle CPU Duration I/O 0x067000940EE23823334.. 342 2323 223 12353 65343 31331 322 654 333 23 432 114 select * from sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_query_plan(plan_handle) CROSS APPLY sys.dm_exec_sql_text(plan_handle)

Limitazione delle versioni fino al 2014 L’execution plan in memoria è sempre l’ultimo compilato Quali sono gli execution plan prodotti per una certa query? Quando è cambiato l’execution plan di una query? Quali sono le prestazioni nel tempo di una certa query? Quali sono le query che ultimamente stanno degradando?

Come funziona Query Store Memory Disk Statistic Collection Interval Plan Store Data Flush Interval Bind Query Store Storage Compile sys.query_store_plan (compile time) ∆ sys.query_store_runtime_stats sys.query_store_query_text sys.query_context_settings sys.query_store_runtime_stats_interval sys.database_query_store_options sys.query_store_query Optimize Runtime Stats Asyncronous Execute Query output

Query store database level configurations ALTER DATABASE AdventureWorks2012 SET QUERY_STORE ( OPERATION_MODE = READ_WRITE, DATA_FLUSH_INTERVAL_SECONDS = 300, INTERVAL_LENGTH_MINUTES = 1, MAX_STORAGE_SIZE_MB = 250, QUERY_CAPTURE_MODE = AUTO, SIZE_BASED_CLEANUP_MODE = AUTO, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 365), MAX_PLANS_PER_QUERY = 1000 ); Use AdventureWorks2014 select * from sys.database_query_store_options

Options explained OPERATION_MODE DATA_FLUSH_INTERVAL_SECONDS Can be READ_WRITE or READ_ONLY. DATA_FLUSH_INTERVAL_SECONDS Frequency at which data written to disk. To optimize for performance, data collected by the query store is asynchronously written to disk. The frequency at which this asynchronous transfer occurs is defined by DATA_FLUSH_INTERVAL_SECONDS. INTERVAL_LENGTH_MINUTES Time Granularity: Determines the time interval at which runtime execution statistics data is aggregated into the query store. To optimize for space usage, the runtime execution statistics in the Runtime Stats Store are aggregated over a fixed time window. This fixed time window is configured via INTERVAL_LENGTH_MINUTES. MAX_STORAGE_SIZE_MB Maximum size of the query store. If the data in the query store hits the MAX_STORAGE_SIZE_MB limit, the query store automatically changes the state from read-write to read-only and stops collecting new data. QUERY_CAPTURE_MODE Defines which query to be captured. Designates if the Query Store captures all queries, or relevant queries based on execution count and resource consumption, or stops adding new queries and just tracks current queries. SIZE_BASED_CLEANUP_MODE Controls whether the cleanup process will be automatically activated when total amount of data gets close to maximum size. CLEANUP_POLICY Configure the STALE_QUERY_THRESHOLD_DAYS argument to specify the number of days to retain data in the query store. MAX_PLANS_PER_QUERY An integer representing the maximum number of plans maintained for each query

Concetti introduttivi: Cosa è una query?  Il testo di una query è la stringa che inizia col primo carattere della prima keyword e finisce con l’ultimo carattere dell’ultima keyword Spazi e commenti prima o dopo NON sono sono significativi Spazi e commenti dentro sono significativi CASE SENSITIVE Attenzione, la semantica dipende dai context settings!! [DEMO] --Test1 Ciao SELECT s.SalesOrderID, h.TotalDue FROM Sales.SalesOrderDetail s INNER JOIN Sales.SalesOrderHeader h ON s.SalesOrderID = s.SalesOrderID WHERE s.ModifiedDate > '20350102' --Test1 Hello SELECT s.SalesOrderID, h.TotalDue FROM Sales.SalesOrderDetail s INNER JOIN Sales.SalesOrderHeader h ON s.SalesOrderID = s.SalesOrderID WHERE s.ModifiedDate > '20350102' = SELECT S.SalesOrderID, h.TotalDue FROM Sales.SalesOrderDetail s INNER JOIN Sales.SalesOrderHeader h ON s.SalesOrderID = s.SalesOrderID WHERE s.ModifiedDate > '20350102' SELECT s.SalesOrderID, h.TotalDue FROM Sales.SalesOrderDetail s INNER JOIN Sales.SalesOrderHeader h ON s.SalesOrderID = s.SalesOrderID WHERE s.ModifiedDate > '20350102' <>

Main DMVs

Query Store DMVs DEMO DMVs Query Store

Query Store benefits E’ a livello di database e salva i dati su disco Storicizza tutti i piani di esecuzione di una query e le relative performance metrics Identifica automaticamente le query che hanno degradato recentemente La storicizzazione è across server restart, upgrades, failover. Permette al DBA di forzare un determinato execution plan nelle successive esecuzioni. Permette di analizzare i pattern di uso delle risorse (CPU,memoria, disco) di uno specifico database

Navigazione dei dati di Query Store Regressed queries Quali sono le queries che ultimamente hanno degradato secondo una certa metrica? Resource consumption Quanto è stato il consumo di una certa risorsa in una certa time slice e quali queries sono responsabili? Resource consuming queries Quali sono le query che in un certo periodo hanno consumato più risorse? Tracking queries Come posso seguire nel tempo le prestazioni di una certa query ed esaminare il cambiamento dei suoi piani di esecuzione?

Cosa non è possibile monitorare nel tempo Blocking chains Deadlocks Waits Lock escalations

Resources Monitoring Performance By Using the Query Store https://msdn.microsoft.com/en-us/library/dn817826.aspx Best Practice with the Query Store https://msdn.microsoft.com/en-us/library/mt604821.aspx

#sqlsatParma #sqlsat566 Thanks!