SQLServer 9. téma Teljesítmény elemzés Probléma megoldás Az adatbázis életében nem ritka kisérő a hibák, teljesítmény problémák jelenléte A probléma megoldáshoz használható útmutatók: - ismerni kell a lehetőségeket - nem szabad idő előtt feladni - elszántságból jön a siker - kérj segítséget, tanulj - lokalizáld a problémát és elemezd - figyeld a naplókat - tanulmányozd a könyveket - figyeld mások megoldásait 1
Probléma megoldás Megoldás részlépései: 1. a rendszer működésének megértése 2. a kijelölt mennyiségek változásának figyelése 3. kapott eredmények elemzése 4. hipotézisek felállítása 5. megoldási alternatívák kidolgozása 6. implementáció 7. eredmények tesztelése 8. folyamatos dokumentálás Probléma lehetséges forrásai: Felmérések: Probléma megoldás - Szerver gép (HW) - Operációs rendszer - SQL Server DBMS - Adatbázis séma - Kliens SQL-API program - Munkamódszer - A leggyakoribb hiba a kliens SQL oldalon van - A legköltségesebbek az adatbázis séma tervezésének hibái 2
Kapcsolódó rendszerhiba típusok Rendszerhiba szintjei: - lemez, hardver - adatbázis - szolgáltatások Fontosabb elemzési eszközök: - OS működése - esemény és hibanapló - rendszerkezelő panel (services) - SSMS - SQL Server Configuration Manager - Profiler - Transact-SQL LogFile Viewer 3
Adatbázis hibák Hibaesemény paraméterei: - Hibakód - üzenet - szint, komolyság (severity) - okjelző (state) - eljárás neve, sorszám Hibaszintek: 10 -- 24 10: információ 11: nem létező objektum 19: végzetes erőforrás kapacitás hiba 21: minden taszkot érintő hiba, db sértetlen arad 22: db objektumot károsító hiba 24: eszköz,diszk hiba Az esemény a 19-es szinttől bekerül az EventLog-ba Adatbázis hibák Tipikus hibaesemények észlelése A redo log megtelik: 9002 számú hiba generálódik Okai: - túl hosszú tranzakció - futó mentés, helyreállítás Lépések: - log file mentése - hely növelés (áthelyezés) - tranzakciók leállítása 4
Adatbázis hibák Tipikus hibaesemények észlelése Az adatállomány helye megtelik: 1101-1105 közötti számú hiba generálódik Okai: - túl sok adat Lépések: - hely növelés (áthelyezés) - ALTER DATABASE ADD FILE A tempdb esetén az ideiglenes adatok miatt is megtelhet sys.dm_db_file_space_usage: - unallocated extents - user_object_reserved_extents - version_storereservedpage_count Lemezhibák A fontosabb eszközök: - Disk Management OS eszköz - chkdsk rutin 5
Memóriahibák Nehéz pontosítani az okot Leálláshoz vezetnek - új hardverek eltávolítása - új meghajtók eltávolítása - meglévő komponensek kiemelése egyenként - RAM teszt futtatása - alaplap csere meminfo: SQL service hibák Leállás okai: - új komponens installálása - jelszó érvénytelensége Service panel főbb funkciói: - indítás/leállítás - inditási mód beállítás - user megadása (Log on) - hibakezelés (Recovery) 6
Fontosabb figyelendő metrikák - memory: pages/sec; available bytes - physical disk: disk time; free space - processor: processor time, queue length - network: bytes total/sec; output queue length - SQLServer: Access methods - SQLServer: Buffer manager - SQLServer: Databases - SQLServer: General statistics - SQLServer: Latches - SQLServer: Locks - SQLServer: Memory management - SQLServer: SQL Statistics - SQLServer: Users, sessions Fontosabb figyelendő metrikák Módszertan: - metrikák kiválasztása - bázisértékek meghatározása - riasztási határértékek meghatározása - riasztások (ALERT) definiálása ALERT kiváltási paraméterek: - error number - severity level - database - event text - object - counter - threshold hibaesemény értékesemény 7
Gazda OS: Windows Server Szerver gép karbantartása Windows Server szolgáltatásai: - Performance Tools - System Monitor - Performance Log - Alert - Event Log Teljesítmény monitor indítása: All Programs >> Administrative Tools >> Performance >> System Monitor System Monitor A monitor célja a kiválasztott teljesítmény metrikák - figyelése,nyomonkövetése - összevetése a bázisértékekkel - problémák észlelése 8
Memória terhelés System Monitor Fontosabb metrikák és használatuk Pages/sec: kilapozások gyakorisága (<20) Available Bytes: fizikai memória hely (>5MB) SQL Server Buffer Cache Hit Ratio: DB cache találati arány (>90%) Disk reads/ sec Disk writes/sec Lemez terhelés System Monitor Fontosabb metrikák és használatuk % Disk time: lemez foglaltság (<55%) Average disk queue length: várakozósor hossza (<10) % Free space: szabad terület aránya (>15%) 9
Processzor terhelés Hálózat terhelés System Monitor Fontosabb metrikák és használatuk % Processor time: futási idő (<80%) Processor queue length: várakozósor hossza (<2) % Bytes received/sec: fogadott byte-ok % Bytes send/sec: küldött byte-ok SQL Server specifikus eszközök SQLServer Profiler: - események nyomkövetése - események adatainak rögzítése - az adatok későbbi kiértékelése SQLServer specifikus eseményekre reagál SQLServer Profiler indítása: All Programs >> Administrative Tools >> Performance >> System Monitor SSMS 10
SQLServer Profiler SQLServer Profiler A naplózást meghatározó legfontosabb paraméterek: EventClass: esemény jellege (Stored Procedues) EventCategory: esemény kategória (RPC Completed) DataColumn: érintett adatmezők (Duration, CPU) Template: minta Trace: naplózás Filter: szűrő 11
DBMS Report Generator További segédeszközök DTA: Adatbázis hangolás tanácsadó DMV: dinamikus menedzsment nézetek (CLR, IO, Database, Replication, Index,SQL,..) (SELECT * FROM sys.dm_db_file_space_usage) (sys.dm_os_memory_cache_clock_hands) DBCC: adatbázis kezelő konzol QueryAnalyser: SQL, Explain plan 12