290 likes | 380 Views
{Teljesítménym onitoro zás és hango lás} a z S QL Server 2008-ban. Bitemo Erik Gergely erik@bitemo.hu Senior Database Administrator Walt Disney Internet Group. { Menetrend }. Monitorozás Általános bevezető Eszközök Kiragadott példák Demó { +néhány gondolat }. Hangolás.
E N D
{Teljesítménymonitorozás és hangolás} az SQL Server 2008-ban Bitemo Erik Gergelyerik@bitemo.huSenior Database AdministratorWalt Disney Internet Group
{Menetrend } • Monitorozás • Általános bevezető • Eszközök • Kiragadott példák • Demó { +néhány gondolat} • Hangolás
Monitorozás - bevezető • Minél kevesebb hatás a felügyelt rendszerre • Rontja a teljesítményt • Hamisíthatja a mért adatokat • Tetszőleges részletességű monitorozás • Pl. lockok: instance – adatbázis – tábla – lap szinten • Pont a szükséges adatokat monitorozzuk • „ami elmúlt, soha nem jön vissza már” (Máté Péter) • A sok logot soha senki nem akarja kielemezni
Monitorozás {} Baseline – normálértékek • Mi lehet a probléma? • Nem elég csak akkor monitorozni, amikor probléma van – kell a viszonyítási alap • Időnként alaposan, folyamatosan átfogóan • Processzor, memória, diszk, hálózat, tranzakciók, lockok • Probléma esetén a megfelelő részt tovább bontani
Monitorozás – az eszköztár SQL Profiler SQL Server Management Studio Performance Studio ? Data Collection (Performance Data Warehouse) Performance Counterek SQL Trace DMV-k Extended Events (xEvents)
Data Collection • (Performance Data Warehouse) • Proaktív/preventív monitorozás eszköze • Baseline készítésére kiváló • Különböző adatforrások egységes kezelése • Pillanatnyilag kezelt adatforrások(collector type): • Teljesítményszámlálók • SQL Trace • T-SQL lekérdezések • Lekérdezés statisztikák (előre definiált halmaz) • Bővíthető • Központi monitorozás • 3-5% többletterhelés • msdbés Management Data Warehouse adatbázisok
Data Collection fogalmak • Data provider: egy definiált adatforrás, ami egy collector type szerinti adatokat szolgáltat • Collector type: logikai egységesítő réteg, ami a különböző típusú adatforrásokból történő tényleges adatkinyerést meghatározza • Collection item: egy collector type egy példánya • Collection set: collection item-ek csoportja, a kezelhető adatgyűjtési egység • Collection mode - cached: az adat nem kerül be azonnal az adatbázisba (később)
A Data Collection működése Riportok Data providerek Collection Set Collector type Collection item MDW Collection item Collector type Data Collector Cache
Extended Events (xEvents) • Sok eddig rejtett belső esemény kinyerhető • Pl. kapcsolatonkénti várakozások • Korrelálható az operációs rendszer eseményeivel • Kernel trace-szel összevethető Event Tracing for Windows (ETW) segítségével • Nincs GUI • Minimális többletterhelés a rendszer számára • 2GHz-es CPU-n 2 ms / eseményfeldolgozás • Folyamatosan futtatható • Egy esemény többszörösen feldolgozható
{ Integration Services } • Sokkal hatékonyabb működés • Az SQL Server 2008 Integration Services 1.18 TB adatot 29 perc 54 másodperc alatt töltött be (szövegfájlokból) • Eddig senki nem mutatott fel jobb eredményt
Hangolás - bevezető • Kihívások • Hová tegyem a clustered indexet? • A plusz indexek rontják a DML utasítások hatékonyságát • Rosszul megírt alkalmazáslogika • Tűzzünk ki célt • Kevesebb I/O művelet • Egy gyakori lekérdezés gyorsítása • Egy erőforrásigényes lekérdezés optimalizálása • Monitorozzunk előtte-utána {baseline} { Statisztika? Index fragmentáció? }
Hangolás - Eszköztár • Database Engine Tuning Advisor* • Tranzakció izolációs szintek* • Particionált táblák* • Minimally logged insert • Policy-based Framework • Adat és backup tömörítés • OPTIMIZE FOR* {UNKNOWN} • Plan Guide* • Plan Forcing* • Filtered index • FORCESEEK • Resource Governor * SQL Server 2005 (SP2)
Hangolás – Resource Governor • CPU és memória szabályozása • A rendszerprocesszek védettek (DAC is) • A ki nem használt minimum memória elveszett • CPU soft, memória hard limit • CPU-t ad többet, ha lehet, memóriát nehéz visszavenni • Versengés esetén nem ígér arányos elosztást • A max 70%-os pool kaphat több erőforrást, mint a 100%-os
Resource Governor {folyamat} Kisker Riport Classifier UDF K R KiskerPool RiportPool Max CPU: 20% Max mem: 20% Max CPU: 100% Max mem: 100% KiskerWG RiportWG Min CPU: 60% Max CPU: 100% Max mem: 100% Min CPU: 20% Max CPU: 100% Max mem: 100% internal default internal default
Resource Governor {memória} Megosztott memória dbo.tbl1 RiportPool min:10%, max 30% KiskerPool min:30%, max 80% ... Default min: 0%, max 100% ...
Tömörítés • Adatot sor vagy lap alapon, csak a lapon tárolt adatokat! • Mentés számszerűen: BACKUP DATABASE AdventureWorks TO ‘AdvBAK’ WITH COMPRESSION
Filtered index • Csak a rekordok egy részére készül el az indexfa • Kevesebb helyet igényel • Gyorsabb futás • Nemcsak filtered index, de filteredstatisztika is van (join-t segítheti) CREATE INDEX IX_Address ON Person.CustomerData(City, Address) WHERE is_active = 1
FORCESEEK • Full table scan vs. Index seek • Segítség, ha ismerünk összefüggést az adatok között (pl. ügyfélszámok és regisztrációs dátumok), és azok egyenetlen eloszlásúak • Ha nincs megfelelő index, akkor elbukik { csak akkor használjunk hinteket, ha pontosan felmértük a helyzetet és a következményeit } SELECT * FROM Person.AddressWITH (FORCESEEK) WHERE StateProvinceID = 8
Plan Guide, Plan Force • Bizonyos esetekben nem nyúlhatunk az alkalmazáshoz és a lekérdezésekhez • Külső fejlesztés, több telepített példány, stb. • Megadhatunk teljes végrehajtási tervet (XML) vagy csak hinte(ke)t EXEC sp_create_plan_guide @name = N'Guide1', @stmt = N'SELECT TOP 233 * FROM Person.Address', @type = N'SQL', @module_or_batch = NULL, @params = NULL, @hints = N'OPTION (MAXDOP 1)'
Itt a vége... • Az SQL Server 2008 sokat ad hangolhatóság terén is • Próbálják ki az SQL Server 2008-at minél előbb • Ez csak egy rövid áttekintés volt erik@bitemo.hu http://blog.rollback.hu ?