Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Podobné dokumenty
Transakce a zamykání Jiří Tomeš

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Databáze II. 2. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská

9. Transakční zpracování

Paralelní přístup k databázi

Zotavení z chyb. Databázové systémy

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Text úlohy. Systémový katalog (DICTIONARY):

Optimalizace dotazů a databázové transakce v Oracle

9. Transakční zpracování

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Transakce Profinit. All rights reserved.

Databázové systémy I. 7. Přednáška

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Zámky, transakce a izolační úrovně v SQL Serveru

Paralelní programování a jeho dopad na databázové. Bc. Lukáš Juřina

Zkušební test. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

IW3 MS SQL SERVER 2014

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy

Transakční zpracování

Zápisování dat do databáze

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

04 - Databázové systémy

Řízení souběžného přístupu k datům v systémech řízení báze dat

DBS transakční zpracování

8.2 Používání a tvorba databází

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení

Databáze SQL SELECT. David Hoksza

Databázové systémy úvod

O Apache Derby detailněji. Hynek Mlnařík

Jazyk SQL 3 - DML, DDL, TCL, DCL

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Databáze I. 1. přednáška. Helena Palovská

Databázové systémy a SQL

Vladimír

Ukázka knihy z internetového knihkupectví

Deklarativní IO shrnutí minulé přednášky

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Jazyk SQL databáze SQLite. připravil ing. petr polách

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz>

Programování a implementace Microsoft SQL Server 2014 databází

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Distribuované transakce

Databázové systémy Cvičení 5.2

TSQL2. (aneb jak na to) Tomáš Janků

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

1. blok Systémový katalog

DPKOM_10 Transakce 1

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze I. Přednáška 4

Použití databází na Webu

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Marian Kamenický. Syntea software group a.s. marian.kamenicky. MFFUK Praha 2012/13

Backup & recovery, SQL Server Agent, Alerts Jiří Tomeš

Databáze 2011/2012 Transakce. RNDr.David Hoksza, Ph.D.

10. Transakce, řízení konkurenčních přístupů.

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská

Databáze II. 1. přednáška. Helena Palovská

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Databázové a informační systémy

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

K čemu transakce. Spolehlivost. Transakce. Petr Tůma

Databázové systémy I

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Migrace CIDUG. Ing. Pavel Krutina

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

4. Databázové systémy

KIV/ZIS cvičení 5. Tomáš Potužák

Monitoring SQL Server, Resource Governor, Tracing SQL Server

SQL. relační databázový systém. v úvodní kurz jazyka SQL

B Organizace databáze na fyzické úrovni u serveru Oracle

Téma 11 Transakce a řízení souběhu

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

SQL - trigger, Databázové modelování

Databázové systémy a SQL

Synchronní replikace v PostgreSQL 9.1

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

Transak ní zpracování I

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Temporální databáze. Jan Kolárik Miroslav Macík

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

DATABÁZE A INFORMAČNÍ SYSTÉMY

Práva a role. Martin Polák. NDBI013 Administrace Oracle

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Úvod do databázových systémů

Administrace Oracle. Práva a role, audit

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

PL/pgSQL. Pavel

Administrace Oracle - Správa zdrojů

Transkript:

Transakce a zamykání Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Základní pojmy Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Transakční log zaznamenávání změn typicky v paměti, u větších transakcí se ukládá na disk ACID Atomicity DT je nedělitelná, změny provede/neprovede jako celek Consistency Databáze stále zůstává v konzistentním stavu Isolation Operace v transakci jsou skryty před vnějšími transakcemi Durability Změny úspěšné DT jsou uloženy v databázi a nemůžou být odvolány

Operace (Transact-SQL) BEGIN DISTRIBUTED TRANSACTION Začátek distribuované transakce spravované MS DTC (Microsoft Distributred Transaction Coordinator) BEGIN TRANSACTION Začátek transakce COMMIT TRANSACTION Potvrzení transakce COMMIT WORK Ořezané potvrzení transakce, nelze definovat rozšířené property (např. název) kompatibilní s SQL92 ROLLBACK TRANSACTION RollBack explicitní/implicitní transakce ROLLBACK WORK Rollback transakce, nelze definovat rozšířené property SAVE TRANSACTION Přidání Savepointu Příkaz - @@TRANCOUNT Čítač zanoření transakcí (BEGIN +1, COMMIT -1, ROLLBACK :=0)

Typy transakcí Explicitní transakce Operace obaleny BEGIN/COMMIT/ROLLBACK Vnořování (@@TRANCOUNT) Stored procedures (Autocommit) Implicitní transakce Každý příkaz v transakci, není třeba BEGIN/COMMIT/ROLLBACK Použije již založenou transakci, pokud existuje, jinak založí novou Příkaz - SET IMPLICIT_TRANSACTIONS ON/OFF

Zámky Účelem zámků je paralelizace, různé granularity, zamykat se dají tabulky, řádky tabulek, celá databáze Zámky automaticky přiřazuje MSSQL Příkaz seznam aktuálně držených zámků - SELECT * FROM sys.dm_tran_locks Shared (S) Zamknutí pro zápis, držitel může pouze číst (SELECT) Update (U) Zámek pro update, kombinace Shared a Exclusive locku Exclusive (X) R/W operace provádí pouze držitel zámku (INSERT/DELETE) Schema speciální zámek při data definition language (DDL) operacích jako přidávání sloupečku, nebo mazání tabulky Key-Range - zamyká rozsah řádků v tabulce Intent Hierarchie zámků, zamykající zdroje na nižších úrovních Intent Shared (IS) Intent Exclusive (IX) Shared with intent exclusive (SIX) Intent update (IU) Shared intent update (SIU) Update intent exclusive (UIX)

Transaction isolation level Izolace transakcí mezi sebou Definování použitých zámků Doba držení zámků pro čtení Čtení modifikovaných dat jinou transakcí Blokace do uvolnění explicitních zámků (RU, Seializable) Čtení pouze potvrzená data (RC, Snapshot) Čtení i nepotvrzených dat (RR) Příkaz SET TRANSACTION ISOLATION LEVEL Isolation level Dirty read Nonrepeatable read Phantom Read uncommitted Yes Yes Yes Read committed No Yes Yes Repeatable read No No Yes Snapshot No No No Serializable No No No

Isolation level explicitních/implicitních transakcí Explicitní transakce Možnost nastavení isolation levelu pro každou transakcí (default SERIALIZABLE) Implicitní transakce Nenastavuje se, použije se nastavení podle předchozí (default READ COMMITED)

Locking hints Specializované zamykání u operací DELETE, INSERT, SELECT, UPDATE, MERGE Příkaz - [Statement] WITH [LOCKING_HINT] SQL server sám optimalizuje exekuční plán pro dotazy, takže se doporučuje spíše pro zkušené adminy Přehled hintů http://technet.microsoft.com/en-us/library/ms187373(v=sql.105).aspx Hint NOWAIT DB se snaží vrátit výsledek okamžitě po obdržení zámku k dané entitě. V případně neúspěchu vrátí chybu. Ekvivalentní s příkazem - SET LOCK_TIMEOUT 0

Ostatní Deadlock Transakce čekají navzájem na zdroje, které jsou již blokovány -> závislost do kruhu Řešení Typicky implementované rozpoznání deadlocku na serveru. MSSQL najde deadlock a zavolá ROLLBACK na jednu z zablokovaných transakcí