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

Slides:



Advertisements
Podobné prezentace
OZD: Hašování RNDr. Michal Žemlička.
Advertisements

Základy databázových systémů
Aplikační a programové vybavení
Business intelligence
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Architektura databáze Oracle
Vzdělávací materiál / DUMVY_32_INOVACE_02B5 Správa pamětí AutorIng. Petr Haman Období vytvořeníčerven 2013 Ročník / věková kategorie2. ročník Vyučovací.
Úvod do databází Databáze.
Databáze Jiří Kalousek.
Diskový oddíl Souborový systém RAID 9/2012.
Transakční systémy Transakční systémy
Adresářová služba Active directory
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Relační databáze.
Tomáš Urych, ESO9 Intranet a.s.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Serverové systémy Windows
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Transakce Roman Špánek TU v Liberci Transakce Transakce = série příkazů čtení a zápisu do databáze A Atomic C Consistency I Isolation D Durability.
Databáze.
Dokumentace informačního systému
Marian Henč, Jan Dryml Systems Engineers Microsoft Windows Server 2003 R2 – co je nového?
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Design databáze DW Ing. Jan Přichystal, Ph.D..
Databázové modelování
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Datovýsklad Datový sklad V budoucích službách státního archivu.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Základy operačních systémů
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Administrace Oracle Paralelní zpracování.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Perzistence XML dat Kamil Toman
Databáze MS ACCESS 2010.
Columnstore indexy - lék pro datové sklady Miloslav Peterka MCSE: Data Platform & Business Intelligence | MCT
Úvod do databází zkrácená verze.
Zálohování dat. Zálohování dat (podle CHIP) důvody zálohování – problémy HW, SFTW, viry, chyby uživatele, viry, hackeři, přírodní katastrofy, krádeže.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Bc. David Gešvindr MCT | MSP | MCTS | MCITP | MCPD.
Základní škola T. G. Masaryka a Mateřská škola Poříčany, okr. Kolín VY_32_INOVACE_ICT_04 ORGANIZACE DAT V PC Zpracovala: Mgr. Květoslava Štikovcová Číslo.
Databázové systémy Roman Danel Institut ekonomiky a systémů řízení 2016.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Paměti PC HDD, CD/DVD, USB Flash RAM a ROM Vnější paměť Disková paměť
Bezpečnostní technologie I
Databázové systémy přednáška 6 – Indexy
OPERAČNÍ SYSTÉMY Část 4 – správa souborů
Systémové databáze v SQL Serveru
Vlastnosti souborů Jaroslava Černá.
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Ing. Athanasios Podaras, Ph.D 2016
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Správa disků
SQL Server Query Store Miloslav Peterka
Analýza velkých dat strukturovaně či nestrukturovaně?
Systém souborů 1.
MS SQL Server stojící, bdící
SQL Server 2017: Automatic tuning
Transkript prezentace:

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

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

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

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)

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

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

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

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ů

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

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

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

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á )

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

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

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

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

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

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

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é

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

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

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

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

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

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ů

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“

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

Demo Detekce fragmentace Vliv fragmentace na IO operace

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)

Demo Odstranění fragmentace

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

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ě

Demo Vliv volby FILLFACTOR na fragmentaci indexu

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

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

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

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

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

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,...)

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

Demo  Využití tempdb

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

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

Demo  Monitorování prostoru v tempdb

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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