Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Zarządzanie transakcjami w SQL Server
Marek Adamczuk
2
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
3
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, 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)
4
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
5
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
6
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.
7
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
8
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
9
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 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
10
Pytania? ???
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.