#sqlsatTorino #sqlsat400 May 23, 2015 Analisi prestazionale (Performance Tuning) in Microsoft SQL Server tramite Dynamic Management Objects Gilberto Zampatti.

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Sicurezza in EGEE Vincenzo Ciaschini Roma.
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
Architettura MySQL E Motori MySQL L. Vigliano.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Database MySql.
Sicurezza e concorrenza nelle basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Miglioramento della protezione dei dati mediante SQL Server 2005 Utilizzo della crittografia di SQL Server 2005 per agevolare la protezione dei dati Pubblicato:
Introduzione ad Active Directory
Introduzione al datawarehouse
Progettare sistemi SQL Server 2005 per soluzioni mission critical Silvano Coriani Developer Evangelist Microsoft.
Data Bases Distribuiti Finalità Caratteristiche Struttura Mario Capurso
Il Sistema Operativo.
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
IL NOSTRO LABORATORIO. Di INFORMATICA..
Limplementazione del database Oracle in Aleph500 Udine, marzo 2001.
Chiara Francalanci Politecnico di Milano SMAU 22 Ottobre 2004.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Struttura dei sistemi operativi (panoramica)
Aspetti sistemistici dellSQL. SQL environment Un SQL environment è un framework dove esistono dati e possono aversi istruzioni SQL eseguite su questi.
Linguaggi di programmazione
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Le transazioni Itis Max Planck.
Daniel Stoilov Tesi di Laurea
Transazioni.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Benvenuti a Un incontro informativo di grande valore ed alto contenuto sulla Virtualizzazione e sistemi ad alta disponibiltà per le PMI.
"Non-Admin" Developing "Non-Admin" Developing Fabio Santini.NET Senior Developer Evangelist Microsoft Italy.
Riservato Cisco 1 © 2010 Cisco e/o i relativi affiliati. Tutti i diritti sono riservati.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
DAGLI ARCHIVI AI DATABASE
Sistemi Informativi sul Web
File system distribuito transazionale con replicazione
Analisi dei Requisiti (Requirements Engineering) Seminario RE Università degli Studi di Padova, 12 Gennaio 2004.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
© 2005 Ethea Le novità di InstantObjects 2.0 Per chi già conosce InstantObjects A cura di Nando Dessena
© 2005 Ethea Introduzione a InstantObjects Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Threads.
Architettura Centralizzata di un DBMS Relazionale
L’architettura a strati
Sistema Operativo (Software di base)
FUNZIONI Dichiarazione: Definizione:
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Certificati e VPN.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Servizi Internet Claudia Raibulet
Transazioni in MySQL 4 Transazioni in MySQL 4
Informatica Generale Marzia Buscemi
#sqlsatTorino #sqlsat400 May 23, 2015 Entity Framework 7 Back To The Future Nuove piattaforme, nuovi data store Michael about.me/micdenny.
CORSO INTERNET la Posta elettronica
Le basi di dati.
I sistemi operativi Funzioni principali e caratteristiche.
+ Geolocalizzazione Nicolò Sordoni. + Servizi di localizzazione In Windows Phone, la posizione dell’utente può essere rilevata in 3 differenti modi: GPS:
INDICI: ARCHITETTURA, UTILIZZO, MANUTENZIONE... ED EVOLUZIONE (II PARTE) INDICI COLUMNSTORE: CONCETTI ED EVOLUZIONE GILBERTO ZAMPATTI
IV Corso di formazione INFN per amministratori di siti GRID Tutorial di amministrazione DGAS Giuseppe Patania.
#sqlsatTorino #sqlsat400 May 23, 2015 AzureML - Creating and Using Machine Learning Solutions Davide
#sqlsatPordenone #sqlsat495 February 27, 2016 SQL Server 2016 Query Store: un nuovo modo di monitorare le query Saverio Lorenzini PFE Principal Engineer.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Microsoft SQL Server 2005: Temporary Objects & Troubleshooting Francesco Quaratino Francesco Quaratino MCP, MCDBA, MCT Francesco
#sqlsatParma #sqlsat462 November 28°, 2015 SQL Server 2016 Query Store: un nuovo modo di ottimizzare le query Saverio Lorenzini PFE Principal Engineer.
Transcript della presentazione:

#sqlsatTorino #sqlsat400 May 23, 2015 Analisi prestazionale (Performance Tuning) in Microsoft SQL Server tramite Dynamic Management Objects Gilberto Zampatti

#sqlsatTorino #sqlsat400 May 23, 2015 Sponsors

#sqlsatTorino #sqlsat400 May 23, 2015 Organizers

#sqlsatTorino #sqlsat400 May 23, 2015 Speaker info  IT pro  IT pro da …un bel mucchietto di anni ;)  MCT  MCT: un pò meno di metà del tempo in aule di varia misura e capienza  Mentore/Consulente  Mentore/Consulente: mi si contatta quando le cose vanno …ma si vuol che vadano meglio  Speaker  Speaker: tra i fondatori di UGISS, qualche conferenza ogni anno mi tiene in salute

#sqlsatTorino #sqlsat400 May 23, 2015 Agenda  System views / System Functions  Dynamic Management Objects  Approccio all’ Analisi prestazionale

#sqlsatTorino #sqlsat400 May 23, 2015 In principio…  Ruolo originale del master  i metadati erano persistiti in tabelle (system tables) esposte ed accessibili  ISV e SW-houses ne facevano uso direttamente  Ogni fix o Service pack comportava il rischio di una modifica al modello dei dati

#sqlsatTorino #sqlsat400 May 23, 2015 Ci voleva prudenza…  SQL 2005 cambia le carte in tavola:  Le system tables sono trasferite in un nuovo database (mssqlsystemresource)  Il master si limita a far da tramite esponendo una collezione di viste (compatibility views)  A complemento, sono disponibili anche nuove viste (catalog views)…  … e sono introdotti per la prima volta nuovi oggetti

#sqlsatTorino #sqlsat400 May 23, 2015 Dynamic Management Objects  La denominazione implica dinamicità dei valori esposti  Dynamic Management Views (DMVs)  Dynamic Management Functions (DMFs)  Mondo in costante evoluzione:  SQL 2005 ne espone 89  SQL 2008 ne espone 136  SQL 2012 ne espone 179  SQL 2014 ne espone 200

#sqlsatTorino #sqlsat400 May 23, 2015 Panoramica  DMV e DMF espongono informazioni e contatori su un ampio ventaglio di oggetti e funzionalità:  Informazioni sulle esecuzioni  Informazioni sulle transazioni  Informazioni sugli Indici  Informazioni sui databases e sul rispettivo I/O  Informazioni sul resto di SQL OS

#sqlsatTorino #sqlsat400 May 23, 2015 Sicurezza  L’accesso ai DMO è protetto:  I DMO che espongono oggetti dell’istanza (in senso lato) sono accessibili da accounts che disponono del privilegio VIEW SERVER STATE  I DMO che espongono invece informazioni su oggetti di uno o più Databases sono accessibili da account dotati di privilegio VIEW DATABASE STATE

#sqlsatTorino #sqlsat400 May 23, 2015 Ambiti delle informazioni  I DMO espongono valori che:  Sono uno snapshot del momento dell’esecuzione  Sono azzerati allo startup dei servizi e cumulativi fino allo shutdown  Quasi sempre si rendono necessarie almeno due letture a distanza di tempo per derivare per ciascun valore un delta rappresentativo dell’intervallo “misurato”

#sqlsatTorino #sqlsat400 May 23, 2015 Un buon punto di partenza  Migliorare le prestazioni significa…far attendere di meno l’Utente  …ma PERCHE l’Utente attende?  Eccessivo consumo di risorse (CPU, Memoria, Storage, Network…)  Sys.dm_os_wait_stats fornisce I tempi cumulativi che ciascun “motivo” (Type) ha accumulato dal momento dello start del Servizio( )  In sql server 2012 ne sono classificati 654…  Solo alcuni hanno un significato “negativo” e ci danno un primo indirizzo. MOLTO SOMMARIO (e talvolta ambiguo)

#sqlsatTorino #sqlsat400 May 23, 2015 Connessioni, Sessioni, Richieste (1)  Connessioni (Connections)  Un’Applicazione, per poter operare su un database deve CONNETTERSI all’istanza.  Sys.dm_exec_connections fornisce informazioni sul traffico di rete, sul protocollo utilizzato, e sugli attributi della fonte della chiamata. ( )  Sessioni (Sessions)  Una connessione consente ad applicazioni ed utenti di iniziare e condurre una o più sessioni.  sys.dm_exec_sessions restituisce informazioni su ciascuna sessione applicativa o di Sistema: impostazioni, sicurezza, contatori (uso di CPU, Memoria, I/O, ecc.) ( )

#sqlsatTorino #sqlsat400 May 23, 2015 Connessioni, Sessioni, Richieste (2)  Richieste (Requests)  Scopo naturale della sessione è quello di richiedere a SQL server di svolgere attività (QUERIES)  Sys.dm_exec_requests mette a disposizione un’ampia gamma di informazioni e di statistiche sulle queries eseguite (elapsed time, CPU time, Waits, ecc) ( )  Sys.dm_exec_sql_text restituisce il testo del batch la cui esecuzione è descritta ed individuate dalla richiesta (tramite sql_handle) ( )  Sys_dm_exec_query_plan rende il piano di esecuzione di quanto eseguito dalla richiesta (tramite plan_handle) ( )

#sqlsatTorino #sqlsat400 May 23, 2015 DEMO

#sqlsatTorino #sqlsat400 May 23, 2015 Queries e Piani di esecuzione (1)  Quali sono le queries più costose ?  Quelle che durano di più  Quelle che, pur con relativa “efficienza”, sono eseguite molte volte  Quali stored procedures ?  I piani di esecuzione sono riutilizzati?  Quali e quante queries “ad hoc” impegnano la plan cache?

#sqlsatTorino #sqlsat400 May 23, 2015 Queries e Piani di esecuzione (2)  sys.dm_exec_query_stats restituisce statistiche prestazionali su ciascun piano presente in cache ( )  sys.dm_exec_procedure_stats restituisce statistiche prestazionali su ciascuna stored procedure ( )  sys.dm_exec_cached_plans informazioni dettagliate sui piani di esecuzione cached ( )  sys.dm_exec_query_optimizer_info restituisce informazioni relative all’operatività dell’ottimizzatore ( )

#sqlsatTorino #sqlsat400 May 23, 2015 Queries e Piani di esecuzione (3)  sys.dm_exec_query_plan restituisce il piano di esecuzione in formato XML ( )  sys.dm_exec_text_query_plan restituisce il piano di esecuzione in formato testo ( )  sys.dm_exec_plan_attributes informazioni dettagliate sui piani di esecuzione (una riga per attributo) ( )

#sqlsatTorino #sqlsat400 May 23, 2015 Transazioni (1)  A transaction is a sequence of operations performed as a single logical unit of work. A logical unit of work; must exhibit four properties, called the ACID properties, to qualify as a transaction.  Atomic  Consistent  Isolated  Durable

#sqlsatTorino #sqlsat400 May 23, 2015 Transazioni (2)  sys.dm_tran_active_transactions offre un primo insieme di informazioni su ciascuna Transazione attualmente in essere  Begin time  Tipo (Read/write, Read Only, System, DTC)  Stato (inizializzata, attiva, completata, in attesa, committed, rollbacked…ecc) ( )

#sqlsatTorino #sqlsat400 May 23, 2015 Transazioni (3)  Due approcci alla concorrenza  Ottimistico (basato su versioning)  Pessimistico  Diversi tipi di lock  Diversi livelli di isolamento  Locking & blocking condizionano le prestazioni  Sys.dm_tran_locks restituisce informazioni su lock in essere (resource) e in attesa (requests) ( )  Sys.dm_os_waiting_tasks offer informazioni sui task in attesa di disponibilità di risorse (inclusa la nozione del o dei task “bloccanti”) ( )

#sqlsatTorino #sqlsat400 May 23, 2015 INDICI (1)  Criticità del modello dei dati  Ci sono indici inutilizzati? ( sys.dm_db_index_usage_stats )  Come sono utilizzati I nostri indici? ( sys.dm_db_index_operational_stats )  È possibile che …manchino indici che potrebbero interessare ( sys.dm_db_missing_index_group_stats, sys.dm_db_missing_index_groups, sys.dm_db_missing_idex_details, sys.dm_db_missing_index_columns ) Index related DMO: ( )

#sqlsatTorino #sqlsat400 May 23, 2015 INDICI (2)  L’indice è un oggetto dinamico  Soffre ineludibilmente di una malattia cronica:  Frammentazione  Sys.dm_db_index_physical_stats  ALTER INDEX…REBUILD  ALTER INDEX…REORGANIZE  OK: ma quando serve deframmentare?

#sqlsatTorino #sqlsat400 May 23, 2015 INDICI (3)  Non dimentichiamo che:  CLUSTERED INDEX è sfruttato al meglio quando si inseriscono righe nell’ordine della chiave e quando deve essere PARZIALMENTE scandito  NON CLUSTERED INDEX è l’ideale quando la selettività della chiave è elevate e serve un accesso per chiave (seek)

#sqlsatTorino #sqlsat400 May 23, 2015 DEMO

#sqlsatTorino #sqlsat400 May 23, 2015 Q&A  Questions?

#sqlsatTorino #sqlsat400 May 23, 2015 THANKS! SPEAKERSCORE #sqlsatTorino #sqlsat400