Architektury a technika databázových systémů

Slides:



Advertisements
Podobné prezentace
SQL Trace, Profiling, …a Tuning Lubomír Andrle
Advertisements

Architektury a technika databázových systémů Jiří Zechmeister 7. přednáška
Tabulkový procesor Práce se souborem – otevření, tvorba a použití šablony, tisk, propojení tabulky Excel s Wordem, nastavení Excelu, uložení Autorem materiálu.
Strategické řízení školy s využitím sebehodnocení školy dle modelu CAF RNDr. Hana Žufanová.
Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
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.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
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.
Informatika pro 5. ročník Úvod do světa počítačů - Hardware.
OPERAČNÍ SYSTÉMY Část 3 – správa procesů Zpracovala: Mgr. Marcela Cvrkalová Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97.
Spolupráce mezi výkresy bloky (s atributy) Design center externí reference.
Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
Název školyZákladní škola praktická Rožnov pod Radhoštěm Číslo projektuCZ / / Číslo materiáluVY_32_INOVACE_225 AutorMgr. Romana Rybiařová.
Název projektu:ZŠ Háj ve Slezsku – Modernizujeme školu Číslo projektu:CZ.1.07/1.4.00/ Oblast podpory: Zlepšení podmínek pro vzdělávání na základních.
Název kapitoly Název podkapitoly Text Schvalovací proces + hodnoticí kritéria Jakub Krátký Praha, 5. května 2016.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Software Licence a distribuce Karel Nymsa Dotkněte se inovací CZ.1.07/1.3.00/
Architektury a technika databázových systémů Jiří Zechmeister 1., 2. přednáška
Databáze © Mgr. Petr Loskot
Úvod do databází MS Access (1).
Microsoft Excel verze 2010 Mgr. Přemysl Kejzlar.
Základy automatického řízení 1
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Systémové databáze v SQL Serveru
COM – Práce s objektovým modelem jiné aplikace
Evaluace předmětů studenty (Anketky)
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
1. Tlačítko START 2. Podrobnější hledání 3. Zařízení a tiskárny 4
Výukový materiál zpracován v rámci projektu
Financováno z ESF a státního rozpočtu ČR.
Architektura UIS Bc. Tomáš Procházka Sekce jádra systému Vývojový tým Univerzitního informačního systému Mendelova zemědělská a lesnická univerzita v.
Windows – WordPad VY_32_INOVACE_32_649
Pracovní skupiny Pracovní skupiny slouží ke sdílení soukromé složky (vzorů, adresářů, příprav, archivu, sestavených dokumentů, seznamů a nastavení) s jinými.
Software počítače 1 - opakování
Inf Ovládání operačního systému
JEdit Open source programování – – Marek Bílý.
Název školy Základní škola Šumvald, okres Olomouc Číslo projektu
Inf Tabulkový procesor - formátování
Databáze MS ACCESS 2010.
Architektury a technika databázových systémů
Financováno z ESF a státního rozpočtu ČR.
Název projektu: ZŠ Háj ve Slezsku – Modernizujeme školu
1. Jak si rychle a jednoduše upravit vzor
Inf Vývojový diagram.
Makro v Excelu.
Vzdělávání pro konkurenceschopnost
1. ročník oboru Mechanik opravář motorových vozidel
Schvalovací proces + hodnoticí kritéria
Výukový materiál zpracován v rámci projektu
Informatika pro ekonomy přednáška 8
Digitální učební materiál
Uživatelská příručka DuoTrainin
Lotus Notes Lotus Notes Alena Málková
Materiál byl vytvořen v rámci projektu
Digitální gramotnost Informatické myšlení
Remote login.
Název školy: Autor: Název: Číslo projektu: Název projektu:
Word Okraje WordArt Pozadí Vodoznak. Word Okraje WordArt Pozadí Vodoznak.
Přednášky z Distribuovaných systémů
Střední odborná škola a Střední odborné učiliště, Hradec Králové, Vocelova 1338, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/
Název školy: Základní škola a Mateřská škola Kladno,
Informatika pro ekonomy přednáška 8
Informatika – Základní operace s buňkami
Hromadné dokumenty opakující se pro kolekci osob
Digitální učební materiál
SQL Server 2017: Automatic tuning
Transkript prezentace:

Architektury a technika databázových systémů Jiří Zechmeister jiri.zechmeister@unicornsystems.eu 7. přednáška 23.11.2016

Obsah Transakce Oracle wait interface Trasakční zpracování UNDO COMMIT/ROLLBACK Oracle wait interface Co je to Oracle wait interface Co je to wait event Top 10 wait events

Opakování

Opakování - Jak probíhá dotaz Uživatel zadá dotaz Server začne zpracovávat dotaz Shared pool provede soft-parse, jinak hard-parse Vloží do shared poolu Vložení nového příkazu do shared poolu vyžaduje latch Server proces hledá v buffer cache požadovaný data blok Data block přesune do sekce naposledy použitých Nebyl nalezen, server proces načte data ze souboru na disku (I/O a latch)

TRANSAKČNÍ ZPRACOVÁNÍ

Jak probíhá update Uživatel spustí příkaz UPDATE Hard-parse x soft-parse Změněné řádky se změní v shared memory a také v undo tablespace Změna se projeví v redo logs souborech Proces DBWR zapíše změněné data z buffer cache do file systému Při commit se logwriter pokusí zkopírovat obsah redo log bufferu do redo log souborů Každé 3 vteřiny nebo v případě, že nastane „switch“ redo logů nastane checkpoint

Oracle wait interface

Základní myšlenka Protože potřebujete vědět kde vaše aplikace tráví čas ;) Záznam u každé obslužné rutiny Před jejím spuštěním vyvolá událost Provede se vlastní kód Událost se ukončí

Co je Oracle wait interface (OWI) Nástroj pro sledování časové náročnosti činností v rámci životního cyklu session Umožňuje identifikovat úzká místa (bottleneck) Slouží pro sledování wait events

Proč OWI Dokáže rychle identifikovat úzká místa Response Time = Service Time + Wait Time Při ladění DB dává smysl používat response time Přesně ukazuje na úzká místa

OWI Od verze Oracle 7.0.12 Sada pohledů V$SYSTEM_EVENT V$SESSION_EVENT V$SESSION_WAIT V$EVENT_NAME V$SESSION

Instrumentace Myšlenka Oracle Nástroje pro trace Každá činnost musí být zaznamenána Každá činnost musí být dohledatelná Každá činnost musí mít úrovně detailu Nástroje pro trace Event 10046 Sql extended trace Ukázka

Použití Trace Důležité jak na DB úrovni tak na aplikační vrstvě „Obalit“ kód pracující s DB (podepsání session, …) Např. package ILO (Instrumentation Library for Oracle ) http://method-r.com/software/ilo Bez možnosti sledovat skutečný běh nelze systém provozovat, nebo jenom velice obtížně …

Ukázka trace file PARSING IN CURSOR #1 len=923 dep=0 uid=82 oct=3 lid=82 tim=1071461386936456 hv=3471484162 ad='db203a8' select y.oppar_db_job_name,y.oppar_db_job_rec,y.oppar_db_prefix,y.oppar_db_request_flag, y.oppar_db_run_id,TO_CHAR(y.oppar_db_last_date,'yyyymmdd') ,oppar_run_modefrom ……………………………. END OF STMT EXEC#1:c=2720000,e=2819768,p=29022,cr=31542,cu=0,mis=0,r=0,dep=0,og=4,tim=1071461386936431 FETCH #1:c=0,e=9,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=1071461386936555 WAIT #1: nam='SQL*Net message to client' ela= 5 p1=1952673792 p2=1 p3=0 WAIT #1: nam='SQL*Net message from client' ela= 19535208 p1=1952673792 p2=1 p3=0 BINDS #1: bind 0: dty=1 mxl=32(03) mal=00 scl=00 pre=00 oacflg=00 oacfl2=1 size=32 offset=0 bfp=110319ed0 bln=32 avl=00 flg=05 WAIT #1: nam='db file sequential read' ela= 27 p1=45 p2=119835 p3=1 WAIT #1: nam='db file sequential read' ela= 10 p1=45 p2=119838 p3=1 WAIT #1: nam='db file scattered read' ela= 74 p1=45 p2=119847 p3=2 WAIT #1: nam='db file sequential read' ela= 9 p1=45 p2=119852 p3=1

Pojmy Latch Latch contention Oracle low-level mechanismus pro serializaci přístupu do paměťových struktur buffer cache, … Jednoduchá paměťová struktura Latch contention Chci latch, ale někdo jiný ji právě používá Počkám až bude k dispozici

Pojmy II KGX = Kernel Generic muteX KGX mutexes are not OS mutexes!! Od verze 10.2 Fyzicky stejná struktura jako latch Pouze odlehčená a menší KGX mutexes are not OS mutexes!!

Wait events

Co je to wait event Oracle termín … Procesy čekají na Uvolnění zdrojů Dokončení jiné akce Samotnou práci OWI umožňuje měření právě těchto wait events

SELECT * FROM v$event_name; Přehled wait events 41 skupin wait events v 10.2.0.3 wait events v 10.2.0.3 209 enqueue events 29 latch events 41 I/O events 13 tříd wait events v 11.2.0.1 wait events v 11.2.0.1 celkem 1116 290 enqueue events 43 latch events 75 I/O events SELECT * FROM v$event_name;

Top 10 wait events

Motivace Jde o čistě subjektivní výběr nejdůležitějších wait events Měli byste vědět Co je způsobuje Jaké hodnoty jsou přiměřené Co můžete dělat, abyste je opravili

Procesorový čas CPU Není čistě wait event Může být dobrým ukazatelem v mnoha případech chybný execution plan

DB File Sequential Read Single block read Obvykle index nebo data block pomocí rowid Rozumná hodnota: < 10ms

DB File Sequential Read II Dělat toho méně ;) Ladění SQL Redukce LIO Zvětšit buffer cache Pracovat rychleji Urychlit I/O

DB File Scattered Read Multi block read Obvykle full table scan nebo fast full scan indexu Rozumná hodnota: < 10ms

DB File Scattered Read II Dělat toho méně ;) Lepší indexy Dobré systémové statistiky Větší buffer cache Ladění SQL Pracovat rychleji Urychlit I/O

Direct Path Read/Write Obvykle třídění v temp Přístup vždy do PGA Může být také paralelní dotaz Rozumná hodnota: < 20ms

Porovnání

Log File Sync Uživatelský proces čeká na LGWR Vyprázdnění redo po uživatelském commit Pozor na příliš mnoho commitů Rozumná hodnota : <4ms

Log File Parallel Write Čekání na zápis LGWR do log files Systémová I/O operace Rozumná hodnota : <4ms

Log file switch … Nastane, když databáze přepíná log files Zamrznutí celé databáze Rozumná hodnota: 0ms Typy log file switch(archiving needed) log file switch (checkpoint incomplete) log file switch (private strand flush incomplete) log file switch completion

Read by other session Soupeření o stejný blok Více session chce číst stejný blok Více session čeká na dokončení změny bloku

Read by other session II Komplikované předcházení Obecně Eliminujte soupeření Najděte a eliminujte horké objekty Jedna z cest odhalení úzkého místa je ASH (active session history)

Read by other session III LGWR – proces starající se o zápis do logů DBWR – proces starající se o zápis dat User1,2,3 – uživatelské procesy

Read by other session IV Při modifikaci bloku musí být zamčena hlavička bloku Zámek je na velice krátkou dobu, ale v případě více procesů může jít o úzké místo

Enqueue locks Rozdíl oproti latch Latch poskytuje exkluzivní přístup Enqueues umožňují sdílený přístup V případě latch musí session usnout nebo zkoušet přístup znovu a nemá záruku, že latch získá při dalším pokusu

Monitoring enqueue locks V$LOCK Seznam aktuálních enqueues Obsahuje typ enqueue V$SESSION_WAIT Lze jednoduše zjistit čekající sessions V$SESSION Od verze 10g Wait informace z V$SESSION_WAIT BLOCKING_INSTANCE a BLOCKING_SESSION

TX wait events - enqueue Transakční zámek (Transaction enqueue) Contention na konkrétní řádek tabulky Cílem je zabránit zápisu dvou session do stejného řádku tabulky Uvolněn vždy při commit transakce

TM wait events - enqueue „DDL“ zámky (Table Modification Enqueue) Cílem je zabránit změnit definice tabulky dvěma session Typicky nastává při ověřování FK

SQL*Net message from client Databáze je v klidovém stavu Čeká na další požadavek od klienta Často označována jako „Idle event“ Ukazuje na přenesení vykonávání na aplikační vrstvu

SQL*Net message to client Přenos na stranu aplikační logiky

SQL*Net more data from client Pro poslání SQL je potřeba více jak jeden packet Neposílejte SQL větší než 50kB ;)

SQL*Net more data from client Stejné jako SQL*Net message to client, ale pro data Hodnoty bind proměnných Bulk operace Reprezentuje čas potřebný pro zabalení dat do packetů

Q&A