Upload
sebastian-mathis
View
27
Download
2
Embed Size (px)
DESCRIPTION
{Teljesítménym onitoro zás és hango lás} a z S QL Server 2008-ban. Bitemo Erik Gergely [email protected] 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. - PowerPoint PPT Presentation
Citation preview
{Teljesítménymonitorozás és hangolás} az SQL Server 2008-ban
Bitemo Erik [email protected] Database AdministratorWalt Disney Internet Group
{ Menetrend }
Monitorozás
Általános bevezetőEszközökKiragadott példákDemó
{ +néhány gondolat }
Hangolás
Monitorozás - bevezetőMinél kevesebb hatás a felügyelt rendszerre
Rontja a teljesítménytHamisíthatja a mért adatokat
Tetszőleges részletességű monitorozásPl. 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 { }
Mi lehet a probléma?Nem elég csak akkor monitorozni, amikor probléma van – kell a viszonyítási alapIdő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
Teljesítményszámláló Érték
Processor:%Processor time\_Total 45
PhysicalDisk:Avg Disk Write Queue Length\_Total
5
SQLServer:Buffer Manager\Page life expectancy
51
SQLServer:Transactions\ Transactions 119
Baseline – normálértékek
Performance Studio
Monitorozás – az eszköztárSQL
Profiler
SQL Trace
Data Collection (Performance
Data Warehouse)
Performance Counterek
Extended Events (xEvents)
DMV-k
SQL Server Management Studio
?
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ésePillanatnyilag kezelt adatforrások (collector type):
TeljesítményszámlálókSQL TraceT-SQL lekérdezésekLekérdezés statisztikák (előre definiált halmaz)Bővíthető
Központi monitorozás3-5% többletterhelésmsdb és Management Data Warehouse adatbázisok
Data Collection fogalmakData provider: egy definiált adatforrás, ami egy collector type szerinti adatokat szolgáltatCollector 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ározzaCollection item: egy collector type egy példányaCollection set: collection item-ek csoportja, a kezelhető adatgyűjtési egységCollection mode - cached: az adat nem kerül be azonnal az adatbázisba (később)
Data providerek
Collection Set
A Data Collection működése
Collector type
Collector type
Collection item
Collection item MDW
Data Collector Cache
Riportok
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 GUIMinimális többletterhelés a rendszer számára
2GHz-es CPU-n 2 ms / eseményfeldolgozásFolyamatosan futtatható
Egy esemény többszörösen feldolgozható
{ Integration Services }
Sokkal hatékonyabb működésAz 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éltKevesebb I/O műveletEgy gyakori lekérdezés gyorsításaEgy erőforrásigényes lekérdezés optimalizálása
Monitorozzunk előtte-utána{ baseline }
{ Statisztika? Index fragmentáció? }
Hangolás - EszköztárDatabase Engine Tuning Advisor*Tranzakció izolációs szintek*Particionált táblák*Minimally logged insertPolicy-based Framework
Adat és backup tömörítésOPTIMIZE FOR* {UNKNOWN}Plan Guide*Plan Forcing*Filtered indexFORCESEEKResource Governor
* SQL Server 2005 (SP2)
Hangolás – Resource GovernorCPU és memória szabályozásaA rendszerprocesszek védettek (DAC is)A ki nem használt minimum memória elveszettCPU 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
defaultinternal
KiskerPool RiportPool
Resource Governor {folyamat}
RiportKisker Classifier UDF
KiskerWG
internal default
RiportWGMax CPU: 20%Max mem: 20%
K R
Min CPU: 60%Max CPU: 100%Max mem: 100%
Max CPU: 100%Max mem: 100%
Min CPU: 20%Max CPU: 100%Max mem: 100%
Resource Governor {memória}
RiportPoolmin:10%, max
30%
KiskerPoolmin:30%, max 80%
Defaultmin: 0%, max 100%
dbo.
tbl1
...
...
Megosztott memória
TömörítésAdatot sor vagy lap alapon, csak a lapon tárolt adatokat!Mentés számszerűen:
BACKUP DATABASE AdventureWorks TO ‘AdvBAK’ WITH COMPRESSION
(tömörítetlen adatbázis)
Tömörítetlen mentés
Tömörített mentés
Backup I/O 24 10
Backup CPU 93 126
(tömörített adatbázis)
Tömörítetlen mentés
Tömörített mentés
Backup I/O 16 10
Backup CPU 125 172
Filtered index
Csak a rekordok egy részére készül el az indexfaKevesebb helyet igényelGyorsabb futásNemcsak filtered index, de filtered statisztika 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 seekSegí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.Address WITH (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 isPróbálják ki az SQL Server 2008-at minél előbb
Ez csak egy rövid áttekintés volt
[email protected]://blog.rollback.hu?