Cieľ kurzu:
Kurz je určený pre vývojárov a administrátorov, ktorí majú problémy s výkonom SQL Servera. Počas neho sa naučia, čo všetko ovplyvňuje jeho výkon, ako rýchlo nájsť hlavné zdroje problémov, a ako ich rýchlo napraviť. Časť kurzu je venovaná aj hlavným chybám, ku ktorým dochádza pri ladení výkonu neskúsenými osobami, ako aj postupy, ako sa takýmto chybám vyhnúť, či napraviť ich. Kurz je určený aj pre účastníkov používajúcich SQL Server 2005. Kurz vedie expert na optimalizáciu výkonu SQL Servera.
Vstupné požiadavky:
Solídne základy správy SQL Servera a písania SQL dotazov v SQL Serveri, ideálne niekoľkoročné skúsenosti v oboch oblastiach.
Trvanie: 2 dni
Obsahová náplň:
Úvod do Performance Tuningu
- Kde začať a na čo sa zamerať
- Limity optimalizácie a SQL Servera
- Architektúra spracovania dotazov v SQL Serveri
- Exekučné plány
- Kompilácia a recyklácia exekučných plánov
- Query Optimizer a proces optimalizácie dotazu
- Faktory ovplyvňujúce optimalizáciu dotazu
- Cache SQL Servera, ich využitie, správa a vplyv na celkový výkon
- Faktory ovplyvňujúce výkon databáz na úrovni OS – CPU, RAM, diskové polia, siete, a ich správna konfigurácia
- SSD disky – áno alebo nie?
Indexy
- Ako SQL Server (ne)používa indexy
- Interná štruktúra indexov a jej využitie
- Clustered vs. Nonclustered indexy
- Indexové štatistiky, interná štruktúra a jej využitie
- Covering vs. Composite indexy
- Indexácia výrazov a agregačných funkcií
- Indexované (materializované) pohľady
- Málo známe spôsoby využitia indexov pre optimalizáciu dotazov
- Full-textové indexy
- Ostatné typy indexov v SQL Serveri 2005-2012: XML, hierarchical, spatial, columnstore
Riešenie problémov s indexmi
- Vplyv indexov na systém ako celok – pozitíva, negatíva
- Optimalizácia indexov – ako rýchlo zistiť chýbajúce aj prebytočné indexy
- Odstránenie bookmark lookup-ov
- Konsolidácia indexov
- Automatická údržba indexov a štatistík
- Filtrované indexy a štatistiky
- Odporúčania z praxe
Optimalizácia vykonávania SQL dotazov
- Zásady správneho písania dotazov
- Optimalizácia JOINov
- Techniky prepisu a refaktoringu dotazov
- Offloading prevádzky na iné zdroje
- Techniky zníženia záťaže servera
- Tipy z praxe pre pokročilé spôsoby optimalizácie dotazov
- Nahradenie náročných SQL analýz OLAP analýzami – úvod do Analysis Services
Presun a archivácia dát
- Bulk load
- MERGE operátor – rýchla synchronizácia dát
- Change Data Capture (CDC) a Change Tracking
- Úvod do ETL nástrojov – SQL Server Integration Services
Automatizované ladenie výkonu servera
- SQL Profiler, SQL Trace, SQLDiag
- Database Engine Tuning Advisor
- SQL Nexus a RML Utilities
Monitoring výkonu
- Activity Monitor, Performance Monitor
- Data Collector a Management Data Warehouse
- SQL Server Performance Dashboard reporty
- Extended Events
- SQLIO, IOMeter
Identifikácia a riešenie problémov s výkonom
- Expresná diagnostika cez Dynamic Management Views
- Identifikácia najviac vyťažujúcich dotazov – dlhotrvajúcich, aj kumulatívne vyťažujúcich
- Locking (uzamykanie a blokovanie) dát pri spracovaní, jeho vplyv na výkon a konkurenčnosť spracovania, optimalizácia lockingu
- Resource Governor – obmedzenie zdrojov SQL Servera pre aplikácie
- Plan Guides – vynucovanie exekučných plánov pre dotazy
- Použitie hintov – kedy áno a kedy nie