Zarządzanie transakcjami w SQL Server

Slides:



Advertisements
Podobne prezentacje
Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Modelowanie przypadków użycia
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Język SQL Część II.
PROGRAMOWANIE STRUKTURALNE
Amadeo Rapid Market System Szybkiej Sprzedaży Amadeo Rapid Market System szybkiej sprzedaży.
Microsoft Professional Developer Days 2004
27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów.
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
Wycofywanie potwierdzonych transakcji
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
Rozdział 13: Architektura systemu Oracle
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Wykład 10 Prowadzący: dr Paweł Drozda
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Synchronizacja Rozdział 5.
ZSBD PL/SQL CZĘŚĆ 3 Wykład 5 Prowadzący: dr Paweł Drozda.
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Wykład 2 Wojciech Pieprzyca
Wzorce projektowe w J2EE
Zarządzanie transakcjami
Rozproszone bazy danych
Rozproszone bazy danych – 2 Zarządzanie transakcjami rozproszonymi
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bezpieczeństwo baz danych
Evident – Środki Trwałe
Mechanizm kompresji danych w SQL Server 2008
TBD - P ERFORMANCE W BAZACH M ICROSOFT SQL S ERVER, CZYLI O CO W TYM W OGÓLE CHODZI Michał Grodzicki MCTS SQL SERVER lipca 2012.
SYSTEM ZARZĄDZANIA ŚRODKAMI OCHRONY INDYWIDUALNEJ
Nowoczesny system zarządzania firmą
Struktura aplikacji System elektronicznej obsługi klienta
Elektroniczny Obieg Dokumentów i Elektroniczna Skrzynka Podawcza
Transakcje zarządzane kontenerem
Aplikacja do analizy polimorfizmów SNP wykorzystywanych w genomice klinicznej Szymon Stawicki.
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Zarządzanie danymi biznesowymi za pomocą usług EIM serwera SQL 2012, czyli jak SSIS, MDM i DQS rozwiązują problem błędnych danych Marcin Szeliga
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
W praktyce Prelegent: Michał Cywiński
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Prezentacja i szkolenie
Aplikacje bazodanowe ADO.NET PHP i MySQL
Komendy SQL do pracy z tabelami i bazami
Bazy Danych w Mango Mateusz Mikulski
dr Łukasz Murowaniecki T-109
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
PL/SQL – dalsza wędrówka
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Przykłady błędów bezpieczeństwa w kilku krokach, Mateusz Olejarka czyli rzecz o atakowaniu procesów.
Systemy informatyczne
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Na czym polega istota i praktyczna użyteczność w CRM modelu „sześciu rynków” Filip Tadaj
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
.NET i Bazy Danych Projekt: Wadim Grasza.
Optymalna konfiguracja Microsoft SQL Server 2014
File History w Windows 8 oraz Shadow Copies w Windows Server 2012 Błażej Miśkiewicz MCTMCP MCSA MCTS MCITP.
Projekt Wydziału Ekonomiczno-Socjologicznego Uniwersytetu Łódzkiego „Wiedza, Kompetencje i Zatrudnienie – dostosowanie programów kształcenia do potrzeb.
1 WebCenter 14 – Co nowego? Rozwiązanie ESKO w zakresie zarządzania produkcją opakowań.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
SQL Server 2012 Autor: Radosław Różyński Strategie i ciekawostki związane z kopiami zapasowymi baz danych SQL Server.
Czy DENY jest zawsze ważniejszy niż GRANT?
Optymalizacja zapytań w SQL Server
KROK 1 Zakładanie kartotek magazynowych
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Zapis prezentacji:

Zarządzanie transakcjami w SQL Server Marek Adamczuk

O mnie Od blisko 12 lat programista SQL Server (od 6.5) Kierownik Wydziału Zarządzania Jakością, Zmianą i Wiedzą w Asseco Business Solutions Warszawa Członek i prelegent PLSSUG Warszawa MCP, MCSE, MCDBA, MCTS, MVP SQL Server

Agenda Co to jest transakcja? Co jest, a co nie jest transakcją w SQL Server? Demo: zarządzanie transakcją wewnątrz procedury Prawidłowa obsługa błędów Zagnieżdżanie transakcji, transakcje nazwane, @@TRANCOUNT Punkty przywracania, SAVE TRAN Droga na skróty TRY..CATCH i XACT_ABORT Jeśli czas pozwoli: próba implementacji transakcji autonomicznej Poziom sesji: 300 (co najmniej)

Definicja transakcji Sekwencja operacji modyfikujących bazę danych traktowana jako całość, tj. z możliwością wycofania w całości Cechy dobrej implementacji transakcyjności – ACID: Atomic – jeśli wycofujemy to wszystko Consistent – po zakończeniu baza jest w spójnym stanie Isolated – „bez wpływu” na inne transakcje Durable – jeśli zatwierdzamy to efekt jest trwały, nawet w przypadku utraty zasilania

Co jest transakcją w SQL Server? Pojedyncza operacja modyfikująca z grupy DDL, DML lub DCL poza SELECT..INTO Operacje w wyzwalaczu (trigger) wraz z instrukcją modyfikującą uruchamiającą go Transakcja użytkownika: świadomie sterowana poleceniami BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN i SAVE TRAN

Co NIE jest transakcją? Instrukcja SELECT poza SELECT..INTO Podstawienie do parametru lub zmiennej, w tym do zmiennej tablicowej Niskopoziomowe operacje na plikach typu: CREATE/DROP/ALTER DATABASE, BACKUP, RESTORE, CHECKPOINT, DBCC.

Transakcje - pojęcia Transakcja zagnieżdżona – transakcja rozpoczęta wewnątrz większej transakcji Transakcja nazwana – wykorzystująca punkty przywracania Transakcja niejawna – zaczynana przez operację modyfikującą, ale wymagającą „ręcznego” zatwierdzenia prze COMMIT TRAN Transakcja rozproszona – wykonywana na więcej niż jednym serwerze (protokół 2PC) Transakcja autonomiczna – transakcja zagnieżdżona, ale z możliwością niezależnego wycofania

Demo – system magazynowy Specyfikacja Stan magazynu zmieniany kolejno numerowanymi dokumentami przychodu i rozchodu Jeden towar tylko raz na dokument (na 1 pozycji) Kontrola stanu (bez stanów ujemnych) Szybki dostęp do sumarycznej ilości sztuk na dowodzie Możliwość realizacji zamówień z zewnętrznego systemu dokumentami rozchodowymi z zachowaniem powiązania z zamówieniem

Podsumowanie Transakcje w SQL Server wymagają obsługi To programista SQL ma kontrolować błędy Zagnieżdżanie transakcji Ograniczone zaufanie do uruchamiającego nasze transakcyjne procedury Ograniczone zaufanie do @@TRANCOUNT Tryb IMPLICIT_TRANSACTIONS wymaga innego kodu SAVE TRAN – dobrze nazywać savepointy Istnieje czasem trzecia droga  Transakcje autonomiczne mogą się przydać Nie ma bezpośredniej obsługi w SQL Server 

Pytania? ???