monitoring sql server, resource governor, tracing sql...
TRANSCRIPT
Monitoring SQL Server,Resource Governor,Tracing SQL Server
1. Monitoring
Monitoring – cíl
Zrychlení odezvy.
Hledání úzkého hrdla.
Identifikace často prováděných dotazů. Úprava dotazu, změna indexu, …
Sledování aktivity uživatelů.
Debugging.
Monitoring - nástroje
Activity monitor. SSMS: [CTRL]+[ALT]+[A]
Performance monitor. [Win]+[R] perfmon [Enter]
Logs: SQL Server Logs.
Windows Application Log (Event Viewer).
SQL Trace + SQL Profiler.
Extended Events + Distributed Replay.
Activity Monitor
Performance Monitor
Performance Monitor objects
SQL Server Performance objects: SQLServer:Access Methods, Backup Device, Buffer
Manager, Buffer Node, CLR, Cursor Manager by Type, Cursor Manager Total, Database Mirroring, Databases, Deprecated Features, Exec Statistics, General Statistics, HADR Availability Replica, HADR Database Replica, Latches, Locks, Memory Manager, Plan Cache, ResourcePool Stats, SQL Errors, SQL Statistics, Transactions, User Settable, Wait Statistics, Workload Group Stats
Workload Groups in Perf. Mon.
SQL Server Logs
Windows Application Log
2. Resource Governor
Resource Governor
Alokace CPU a paměti.
Stanovení limitů.
Omezení zdivočelých procesů.
Dělení prostředků mezi aplikace.
Implicitně vypnutý. ALTER RESOURCE GOVERNOR
{RECONFIGURE | DISABLE}
Resource Governor - omezení
Pouze CPU a paměť. Nereguluje přístup k disku!
Pouze prostředky alokované SQL serveru OS. Neovlivní ostatní aplikace na serveru.
Pouze relační databáze. Nemožno limitovat SSAS, SSIS, SSRS.
Nefunguje mezi instancemi.
Nehodí se na krátké požadavky (OLTP). Nestihne včas zasáhnout.
Resource Governor – fungování
Pojmy Resource Pool.
Workload Group.
Classifier function.
Proces. Každá session je klasifikována.
Její úlohy jsou směrovány do skupiny.
Skupina spotřebovává resource pool.
Resource Pool
Část systémových prostředků přidělených serveru.
Procesor: MIN, MAX, CAP (nedostupno v SSMS).
Paměť: MIN, MAX.
Internal Pool: Pro vnitřní potřeby serveru. Neomezen.
Default Pool: pro neklasifikované úlohy.
Vlastní: CREATE RESOURCE POOL
Workload Group
Do jednoho Resource Pool může být zařazeno více skupin (Workload Group).
Slučování úloh do skupin podobné povahy pro společnou monitoraci a nastavení limitů.
Výchozí skupiny: Internal, Default.
Vlastní: CREATE WORKLOAD GROUP
Volitelná Importance (v rámci Resource Pool).
Limity per request: procesor, paměť, DOP (degreeof parallelism).
Classifier Function
Uživatelsky definovaná funkce. V databázi Master.
Vrací jméno skupiny.
Např. dle cílové databáze, uživatele, času, …
Registrace funkce pomocí: ALTER RESOURCE GOVERNOR
Volána při vytvoření session. Autentizace -> LOGON trigger -> klasifikace -> …
Při neúspěchu klasifikace: skupina default.
3. Tracing
Tracing – použití
Debugging: Logování běhu serveru. Prohlížení spouštěných funkcí vč. parametrů.
Následné krokování v SSMS.
Identifikace sekvence dotazů způsobující problém. Reprodukce problému (replay).
Identifikace pomalých dotazů.
Zátěžové testování: Záznam zátěže systému. Reprodukce na testovaném prostředí.
Možno i z více počítačů – Distributed Replay.
Tracing - nástroje
SQL Trace (deprecated) GUI: SQL Server Profiler.
SQL: Stored procedures (server-side trace).
Captrure i Replay.
Extended Events Doporučená náhrada.
GUI: SQL Server Management studio.
SQL: CREATE EVENT SESSION
Trace Replay pomocí Distributed Replay.
SQL Trace
Zachycuje události předdefinovaných tříd.
Obvykle filtrace pouze potřebných tříd.
Ukládání pouze vybraných atributů.
Definici trace možno uložit.
Záznam výsledků do souboru či tabulky. Tabulka: větší zátěž ale snadná filtrace.
SQL Profiler
Rozsáhlé GUI k SQL Trace.
Deprecated – budoucnost pouze pro SSAS.
Definice.
Spuštění. Client-side trace.
Analýza.
Replay. Krok za krokem, breakpoints, run to cursor, …
Analýza deadlocks - deadlock wait-for graph. Deadlock graph event.
Sever-side trace
Garance, že všechna data opravdu budou uložena.
Výrazně nižší dodatečná zátěž (CPU, síť). http://sqlblog.com/blogs/linchi_shea/archive/2007/08/
01/trace-profiler-test.aspx
Nutno definovat a spustit pomocí stored proc.
Strored procedures
sp_trace_create Definice nové trace.
sp_trace_seteventtrace_id, event_id, column_id, {0, 1}
Přidání či odebrání sledované události, resp. atributu.
sp_trace_setfilter Nastavení filtrace.
sp_trace_setstatus Spuštění, zastavení či smazání.
http://msdn.microsoft.com/en-us/library/ms187346.aspx
Lze generovat pomocí SQL Profiler: File -> Export -> Script Trace Definition.
Stored procedures – čtení
sys.fn_trace_getinfo Informace o traces, odpovídá příkazu create.
sys.fn_trace_geteventinfo Které events jsou sledovány.
sys.fn_trace_getfilterinfo Jak jsou filtrovány.
sys.fn_trace_gettable Načte záznam trace ze souboru do fromy tabulky.
http://msdn.microsoft.com/en-us/library/ff848738.aspx
Extended Events (XE)
Nástupce SQL Trace. Dostupné od verze 2008.
Obdobná funkčnost.
Ještě menší zátěž serveru [1].
Kompatibilní s ETW (Event Tracing for Windows)
Zatím horší podpora nástrojů. Oficiální GUI funkční pouze pro verzi 2012.
Existují events, které jsou dostupné pouze z XE. Ve verzi 2008 existují naopak events dostupné pouze z SQL
Trace. Ve verzi 2012 je již v XE dostupné vše.
Extended Events – použití
Vytvoření Extended Event Session pomocí: SQL:
CREATE EVENT SESSION
ADD EVENT
ADD TARGET
ALTER EVENT
SQL Server Management Studio: New Session.
New Session Wizard.
Pouze verze 2012.
Existují skripty pro usnadnění migrace [1].
[1] http://www.sqlskills.com/blogs/jonathan/post/Converting-SQL-Trace-to-Extended-Events-in-SQL-Server-2012.aspx