Architektury a technika databázových systémů Jiří Zechmeister 7. přednáška 23.11.2014.

Slides:



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

Zpracování SQL Lubomír Andrle 5. přednáška
Základy databázových systémů
 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
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Architektury a techniky databázových systémů 30. září 2013
Architektura databáze Oracle
Lubomír Andrle 8. přednáška
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Temporální databáze a TSQL
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Radek Špinka Přepínače MSSQL výběr.
Úvod do databází Databáze.
Databáze Jiří Kalousek.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Execution plans Lubomír Andrle 6. přednáška
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Relační databáze.
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.
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Administrace Oracle Práva a role, audit Filip Řepka 2010.
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
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.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
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.
Přednáška č. 1 Proces návrhu databáze
Databázové modelování
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
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í.
Databázové aplikace v Delphi
Vývoj informačních systémů Námět na praktické cvičení Klient – Server (nepovinné)
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.
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Vypracoval / Roman Málek
Ukládání dat biodiverzity a jejich vizualizace
Databázové systémy přednáška 8 – Transakce
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.
1. ročník oboru Mechanik opravář motorových vozidel
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Architektury a technika databázových systémů
Databázové systémy a SQL
Optimalizace SQL dotazů
Správa disků
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
SQL Server Query Store Miloslav Peterka
Přednášky z distribuovaných systémů
Přednáška 9 Triggery.
Distribuovaný systém souborů
Transkript prezentace:

Architektury a technika databázových systémů Jiří Zechmeister 7. přednáška

Obsah Transakce – 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 Sada pohledů – V$SYSTEM_EVENT – V$SESSION_EVENT – V$SESSION_WAIT – V$EVENT_NAME – V$SESSION

Instrumentace Myšlenka Oracle – 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 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 ) 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= hv= 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= ,e= ,p=29022,cr=31542,cu=0,mis=0,r=0,dep=0,og=4,tim= FETCH #1:c=0,e=9,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim= WAIT #1: nam='SQL*Net message to client' ela= 5 p1= p2=1 p3=0 WAIT #1: nam='SQL*Net message from client' ela= p1= 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= p3=1 WAIT #1: nam='db file sequential read' ela= 10 p1=45 p2= p3=1 WAIT #1: nam='db file scattered read' ela= 74 p1=45 p2= p3=2 WAIT #1: nam='db file sequential read' ela= 9 p1=45 p2= p3=1

Pojmy Latch – 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 – 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

Přehled wait events 41 skupin wait events v wait events v – 209 enqueue events – 29 latch events – 41 I/O events 13 tříd wait events v wait events v 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