Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Miloslav Peterka, BI Experts, s.r.o.

Podobné prezentace


Prezentace na téma: "Miloslav Peterka, BI Experts, s.r.o."— Transkript prezentace:

1 Miloslav Peterka, BI Experts, s.r.o.

2 Agenda  Správa databázových souborů  Indexy – správa a optimalizace  Databáze tempdb  Monitorování a optimalizace  (Konfigurace instance a databáze)

3 Databáze a jejich soubory  Databáze Kolekce objektů pro ukládání a manipulaci s daty  Každá obsahuje minimálně dva soubory Primární datový soubor (.mdf) Transakční log (.ldf)  Volitelně sekundární datové soubory (*.ndf), případně další transakční logy

4 Struktura datových souborů  Datová stránka (data page - 8kB) nejmenší jednotka pro IO operace V rámci souboru číslovány od 0  Blok (extent - 64kB) Kolekce osmi datových stránek Používají se pro alokaci prostoru Dva typy ○ uniformní – náleží jednomu objektu ○ smíšené – sdílené mezi více objektů (po stránkách)

5 Stránky v datovém souboru  File Header obsahuje atributy souboru  Bulk Changed Map mapa bloků změněných od poslední zálohy logu bulk logged operacemi pro zálohování logu v bulk logged recovery módu  Differential Changed Map mapa změněných bloků od poslední plné zálohy pro rozdílovou zálohu

6 Alokace prostoru  Malé tabulky (menší než 8 stránek) jsou umístěné ve sdílených blocích, větší v uniformních  GAM (Global Allocation Map) bitová mapa určující nealokované extenty pokrývá prostor cca 4GB  SGAM (Shared GAM) bitová mapa určující smíšené bloky s volnou stránkou

7 Filegroup  Pojmenovaná skupina datových souborů  Definuje diskový prostor pro uložení tabulek a indexů  PRIMARY filegroup obsahuje vždy alespoň primární datový soubor  Umožňují zálohovat a obnovovat databázi po částech využívat table a index partitioning  Filestream Filegroup

8 BP pro datové soubory  Nepoužívat Autogrow a Autoshrink  Datová soubory alokovat pro finální velikost databáze  Fyzicky oddělit datové soubory od transakčních logů (RAID10)  Více datových souborů na jednom disku Možná obnova na menší disky Připraveno pro přenos na více disků

9 Transakční log  Fyzický soubor(y) na disku  Zaznamenává změny prováděné v databázi a informace o použitých zámcích  Umožňuje Zotavení databáze po havárii ○ Restart a Restore recovery Rollback transakcí  Používá write-ahead zápis

10 Transakční log  Recovery model databáze určuje kolik informací se do logu píše jak dlouho v logu informace zůstávají  Aktivní část logu Část potřebná ke zotavení databáze Dána začátkem nejstarší nedokončené (nevyreplikované) transakce Nelze ji z logu vyprázdnit

11 Virtual Log File (VLF)  Jednotka pro interní správu transakčního logu  Počet VLF dán počáteční velikostí logu a velikostí inkrementálních přírůstků  LSN – Log Sequence Number Číslo přiřazené každému záznamu v logu

12 BP pro transakční logy  Dedikovaný disk  Pouze jeden pro jednu databázi  RAID konfigurace (1 vs 10)  Prealokovaná velikost, vodítko: 10 – 25% velikosti DB  AutoGrow s rozumnou velikostí  Interní defragmentace (+ fyzická )

13 Interní fragmentace logu  Log členěn na VLF  VLF přidány při zvětšení logu <= 64MB – 4 VLF > 64MB a < 1GB – 8 VLF > 1GB – 16 VLF  Počáteční velikost logu ne větší než 8GB (generuje VLF o velikosti 500MB)  Rozumný počet VLF: < 50

14 Interní defragmentace logu 1. Vyprázdnit log (backup nebo checkpoint) 2. Zmenšit log na minimum (shrink) 3. Prealokovat odpovídající délku 4. Nastavit odpovídající přírůstek

15 Demo Obsah a struktura transakčního logu Interní fragmentace logu

16 Agenda  Správa databázových souborů  Indexy – správa a optimalizace  Databáze tempdb  Monitorování a optimalizace  (Konfigurace instance a databáze)

17 Organizace dat v tabulce sys.indexes sys.partitions sys.allocation_units

18 Heap  Tabulka bez klastrovaného indexu  Pořadí záznamů není dáno  Řádek se vloží tam, kde je místo dle IAM a PFS

19 Indexy  Zrychlují vyhledávání dat  Zpomalují modifikace v datech  Jsou organizované jako stromové struktury Kořenová úroveň obsahuje jednu stránku - root Každá další úroveň má větší počet stránek Nejnižší úroveň označovaná jako listová  Dva typy – klastrované a neklastrované

20 Klastrované indexy  Listová úroveň obsahuje datové stránky  Definuje pořadí řádků a stránek  Pro každou tabulku možný jen jeden

21 Neklastrované indexy  Stejná struktura jako u klastrovaných indexů  Rozdíl je v listové úrovni Obsahuje ○ indexový klíč, případně vložené sloupce ○ ukazatel na celý řádek RID, pokud je tabulka na heapu klastrovaný klíč, pokud má tabulka klastrovaný index  Neovlivňují vlastní tabulku

22 Demo Organizace dat v tabulce Heap Neklastrovaný index Klastrovaný index

23 Fragmentace indexů - dělení stránek  Pozice nového záznamu dána hodnotou indexového klíče  Pokud není na dané stránce dostatek místa: Alokuje se nová stránka (fyzicky na jiném místě) Nová stránka se včlení do seznamu a polovina záznamů z původní stránky se přesune na novou Nový záznam se vloží na místo dané indexovým klíčem

24 Fyzická fragmentace (interní)  Způsobená nezaplněnými stránkami indexu  Vzniká: dělením stránek mazáním záznamů nevyužitím místa v důsledku velikosti záznamů  Větší diskový prostor, více IO operací, větší nároky na velikost paměti

25 Logická fragmentace (externí)  Logické a fyzické pořadí stránek (bloků) se liší  Vzniká dělením stránek  Snižuje efektivitu skenování indexů

26 Detekce fragmentace  Index Physical Statistics report v SSMS zobrazuje fragmentaci indexů doporučuje způsob odstranění fragmentace  Okno vlastností indexu  sys.dm_db_index_physical_stats Funkce vracející tabulku Vrací informace o struktuře tabulek a indexů a jejich „kondici“

27 sys.dm_db_index_physical_stats  Pět parametrů s defaultními hodnotami: database_id, object_id, index_id partition_number mode ○ LIMITED – sken první nelistové úrovně indexu ○ SAMPLED – skenuje 1% všech stránek ○ DETAILED – skenuje vše, poskytuje informace o všech úrovních indexu

28 Demo Detekce fragmentace Vliv fragmentace na IO operace

29 Odstranění fragmentace  ALTER INDEX.... REORGANIZE pokud je fragmentace menší než 30% online operace  ALTER INDEX..... REBUILD při fragmentaci větší než 30% v Enterprise edici možné provádět online  V rámci plánu údržby databáze (SSIS)

30 Demo Odstranění fragmentace

31 Prevence fragmentace  Vhodná volba klastrovaného indexu Unikátní ○ Pokud není, zajištěno interně přidáním 4B čísla Co nejmenší ○ Klastrovaný klíč součástí všech neklastrovaných indexů Neměnné rostoucí hodnoty ○ Zamezuje zbytečné fragmentaci Vhodný typ int s volbou identity

32 Prevence fragmentace  Vhodnou volbou FILLFACTORu Definuje zaplnění listové úrovně indexu Odkládá nutnost dělení stránek Příliš nízká hodnota degraduje výkon při čtení ○ počet operací čtení typicky dvakrát více než zápisu  PADINDEX Aplikuje FILLFACTOR i na nelistové úrovně

33 Demo Vliv volby FILLFACTOR na fragmentaci indexu

34 Agenda  Správa databázových souborů  Indexy – správa a optimalizace  Databáze tempdb  Monitorování a optimalizace  (Konfigurace instance a databáze)

35 Specifika tempdb  Jedna pro celou instanci Globální zdroj dostupný všem uživatelům  Vytvářena při každém startu SQL Serveru  Transakce v tempdb nejsou trvanlivé Díky tomu rychlejší Chybí REDO fáze Není nutný flush při COMMITu transakce

36 Omezení tempdb  Nelze ji smazat ani přejmenovat  Nedá se zálohovat  Pouze jedna filegrupa  Některé vlastnosti nelze měnit RECOVERY model Dostupnost, šifrování AUTO_SHRINK, AUTO_CLOSE

37 Využití tempdb v SQL Serveru  Dotazy a DML operace alokují prostor v tempdb Uživatelské objekty Interní objekty Version store

38 Uživatelské objekty  Viditelné v kat. pohledech (sys.all_objects) Uživatelské tabulky a indexy vytvořené v tempdb Systémové tabulky a indexy Dočasné tabulky a indexy (#tbl, ##tbl) Proměnné typu table Tabulky vracené z TVF

39 Interní objekty  Vytvářené interně SQL Serverem  Velikost minimálně 9 stránek (IAM + 8 na data)  Skryté objekty, nejsou vidět v kat. pohledech Mezivýsledky třídění, hash joinů a agregací, kurzory LOB proměnné (xml, varchar(max),...) Vytváření indexů s volbou SORT_IN_TEMPDB Service Broker (event notification, database mail,...)

40 Version store  Úložiště verzí řádků pro zajištění specifické funkčnosti SQL Serveru  Dvě odlišná úložiště: common version store pro ○ Snapshot izolaci transakcí ○ MARS ○ Triggery online-index-build version store

41 Demo  Využití tempdb

42 Monitorování prostoru v tempdb  sys.dm_db_file_space_usage Vrací počet stránek alokovaných v tempdb pro jednotlivé typy úložišť Vysoké % prostoru alokovaného pro interní objekty může signalizovat nevhodné exekuční plány Vysoké % prostoru alokovaného pro version store signalizuje dlouho trvající transakci ○ sys.dm_tran_active_snapshot_database_transactio ns umožňuje detekovat dlouho běžící snapshot transakce

43 Monitorování prostoru v tempdb  sys.dm_db_session_space_usage Vrací počet stránek alokovaných a dealokovaných v tempdb pro jednotlivá připojení od jejich začátku  sys.dm_db_task_space_usage Vrací počet stránek alokovaných a dealokovaných v tempdb na úrovni jednotlivých tasků Lze kombinovat s sys.dm_exec_requests pro získání dotazu či exekučního plánu

44 Demo  Monitorování prostoru v tempdb

45 Best practices pro tempdb  Separace od ostatních databází rychlý IO subsystém  Rozdělení na více datových souborů Stejná velikost Počet dle počtu CPU jako vodítko Typické optimum mezi 4 a 8 datovými soubory Snižuje soupeření o alokační stránky (UP latch)

46 Best practices pro tempdb  Předalokování velikosti na velikost odpovídající typické zátěži  Povolit Autogrow (pouze „pro sicher“)  Používat Instant File Initialization Zrychluje alokaci diskového prostoru pro databáze Nepřepisuje nové místo nulami Vyžaduje právo SE_MANAGE_VOLUME_NAME pro účet SQL Serveru

47 Agenda  Správa databázových souborů  Indexy – správa a optimalizace  Databáze tempdb  Monitorování a optimalizace  (Konfigurace instance a databáze)

48 Metodika Waits and Queues  Waits SQL Server potřebuje systémové zdroje pro zpracování dotazů Pokud nejsou dostupné, musí na ně čekat Délku čekání na jednotlivé typy zdrojů eviduje ve statistikách Typy čekání identifikují a kategorizují čekání uživatele (aplikace) 48

49 Metodika Waits and Queues  Queues Měří systémové zdroje a jejich využití Reprezentovány objekty a čítači v Performance Monitoru  Korelace Wait statistik a Queues umožňuje identifikovat problémové oblasti a úzká hrdla 49

50 Zpracování úloh v SQL Serveru  Scheduler Rozděluje práci CPU (jeden scheduler na jedno CPU) Pracuje kooperativně ○ Probíhající úloha dobrovolně uvolní CPU ostatním  Worker Thread svázaný s daným schedulerem Vykonává jednu úlohu (task) 50

51 Zpracování úloh v SQL Serveru  Tři stavy zpracování úlohy Running ○ Zpracovává se - pouze jedna úloha pro daný scheduler Runnable ○ Čeká na přidělení CPU Suspended ○ Čeká na dostupnost požadovaných zdrojů 51

52 Waiting tasks (Resource Waits) SPID 73 LCK_M_S SPID 59 NETWORKIO SPID 55 LOGMGR SPID 60 IO_COMPLETION Waiting tasks (Resource Waits) SPID 73 LCK_M_S SPID 59 NETWORKIO SPID 56 CXPACKET SPID 55 LOGMGR SPID 60 IO_COMPLETION Running SPID 51 Running Running SPID 60 IO_COMPLETION Running SPID 60 Running Zpracování úloh v SQL Serveru 52 Runnable queue (Signal Wait) SPID 51 Runnable SPID 64 Runnable SPID 87 Runnable SPID 52 Runnable SPID 93 Runnable SPID 56 Runnable

53 Monitorování - Queues  Objekty a čítače Performance monitoru CPU Memory IO subsystém Network 53

54 Monitorování - Waits  DM pohledy SQL Serveru sys.dm_wait_stats ○ statistiky čekání SQL Serveru sys.dm_os_waiting_tasks ○ Informace o úlohách v čekající frontě 54

55 Demo  Queues – Performance Monitor  Waits – dm pohledy v SQL Serveru 55

56 Vyhodnocení  Management Data Warehouse Pouze od verze 2008 nahoru Od Workgroup edice (single instance) Problematická analýza a rozšiřitelnost  Nástroje třetích stran (Quest, Idera…) Dobré nástroje velmi drahé  DW/BI řešení 56

57 DW/BI řešení  OLTP databáze pro sběr výkonnostních charakteristik  Dimenzionální DW  Datová kostka pro ad-hoc analýzu 57

58 Demo  DW/BI řešení Sběr dat Datový sklad Datová kostka 58

59 Agenda  Správa databázových souborů  Indexy – správa a optimalizace  Databáze tempdb  Monitorování a optimalizace  (Konfigurace instance a databáze)


Stáhnout ppt "Miloslav Peterka, BI Experts, s.r.o."

Podobné prezentace


Reklamy Google