[ Pobierz całość w formacie PDF ]

nie instrukcji ROLLBACK TRAN zamyka transakcje i zeruje licznik otwartych transakcji:
BEGIN TRAN;
SELECT @@TRANCOUNT;
5
W niektórych serwerach bazodanowych transakcje zatwierdza si instrukcjami COMMIT TRANSACTION
lub COMMIT WORK.
206 Cz III Modyfikowanie danych, czyli instrukcje INSERT, UPDATE, DELETE, MERGE
BEGIN TRAN;
SELECT @@TRANCOUNT;
BEGIN TRAN;
SELECT @@TRANCOUNT;
COMMIT TRAN;
SELECT @@TRANCOUNT;
ROLLBACK TRAN;
SELECT @@TRANCOUNT;
------------------------------------------------------------
1
2
3
2
Punkty przywracania
Wi kszo serwerów bazodanowych pozwala wycofa nie tylko ca transakcj , lecz
tak e jej cz . W tym celu nale y w trakcie transakcji wykona instrukcj SAVE TRAN6,
a nast pnie przywróci j do danego punktu:
BEGIN TRAN;
INSERT INTO dbo.Dostawcy(Firma)
VALUES ('TEST1');
SAVE TRAN PP1;
INSERT INTO dbo.Dostawcy(Firma)
VALUES ('TEST2');
SELECT @@TRANCOUNT;
ROLLBACK TRAN PP1;
SELECT @@TRANCOUNT;
------------------------------------------------------------
1
1
Poniewa przywrócenie stanu transakcji do okre lonego punktu nie powoduje jej zako -
czenia (liczba otwartych transakcji nadal wynosi 1), musimy j zatwierdzi lub wycofa :
SELECT ID, Firma
FROM dbo.Dostawcy
WHERE Firma LIKE 'TEST_';
------------------------------------------------------------
17 TEST1
Jako e druga instrukcja INSERT zosta a wykonana po zdefiniowaniu punktu przy-
wracania PP1, instrukcja ROLLBACK TRAN PP1 przywróci a stan danych do momentu
sprzed jej wykonania i w rezultacie tylko pierwszy wiersz zosta na trwa e wstawiony
do tabeli.
6
W niektórych serwerach bazodanowych punkty przywracania tworzy si instrukcjami SAVE TRANSACTION
lub SAVE WORK.
Rozdzia 9. Transakcje i wspó bie no 207
Wspó bie no
Wspó bie no to zdolno systemu do jednoczesnego realizowania wielu operacji,
z regu y uzyskiwana poprzez uruchomienie osobnych procesów (robotników) na potrzeby
obs ugi poszczególnych da .
Wspó bie no ma ogromny wp yw na skalowalno serwerów bazodanowych, czyli
ich zdolno do coraz szybszego wykonywania transakcji dzi ki rozbudowywaniu
komputerów, na przyk ad zwi kszaniu ich mocy obliczeniowej czy przepustowo ci
dysków twardych.
eby ka dy z kilkuset czy nawet kilku tysi cy jednoczesnych u ytkowników serwera
bazodanowego móg pracowa tak, jakby by jego jedynym u ytkownikiem, konieczne
jest odizolowanie od siebie poszczególnych transakcji. Umo liwiaj to automatycznie
zak adane blokady.
Blokady
Pomijaj c analizy wewn trznych mechanizmów dzia ania ró nych serwerów bazoda-
nowych, blokady mo na podzieli ze wzgl du na ich tryb (sposób blokowania) i zakres
(typ blokowanych zasobów).
Tryby blokad
Tryb blokady decyduje o tym, czy mo liwe b dzie jej za o enie na zasobie wcze niej
zablokowanym przez inny proces:
1. Blokady wspó dzielone S (ang. Shared) s domy lnie zak adane
na odczytywanych obiektach, takich jak tabele czy wiersze. Na obiekt
zablokowany w trybie S inne procesy te mog za o y blokad S, czyli
odczytuj cy nie blokuj innych odczytuj cych. Blokady S domy lnie
zak adane s tylko na czas wykonywania zapytania, a nie ca ej transakcji.
2. Blokady wy czne X (ang. eXclusive) s zak adane na modyfikowanych
obiektach. Blokady X s niekompatybilne z innymi blokadami, czyli modyfikuj cy
blokuj innych u ytkowników. W przeciwie stwie do blokad wspó dzielonych
blokady wy czne domy lnie s utrzymywane do zako czenia ca ej transakcji,
a nie pojedynczej operacji.
Zakresy blokad
Blokady mog by zak adane na poziomie poszczególnych wierszy, kluczy indeksów,
stron, zakresów lub ca ych tabel. Te obiekty tworz naturaln hierarchi : tabela sk ada
si z wielu stron, na ka dej stronie zapisanych jest wiele wierszy itd. Z tego powodu
serwery bazodanowe musz analizowa wszystkie istniej ce blokady, zanim za o
now  je eli cho jeden wiersz tabeli jest zablokowany w trybie X, nie mo na na
ca ej tabeli za o y innej blokady.
208 Cz III Modyfikowanie danych, czyli instrukcje INSERT, UPDATE, DELETE, MERGE
Im wi ksze obiekty s blokowane, tym mniejsza wspó bie no (bo u ytkownicy musz
d u ej czeka na dost p do zablokowanych zasobów), ale równie tym mniejsza
liczba blokad, którymi musi zarz dza serwer bazodanowy (zostanie za o ona jedna
blokada na ca ej tabeli zamiast miliona blokad na poszczególnych wierszach).
Zakleszczenia
Zakleszczenie (ang. DeadLock) ma miejsce, gdy ró ne procesy blokuj si nawzajem
w taki sposób, e aden z nich nie jest w stanie za o y blokad wymaganych do uko -
czenia ju rozpocz tych operacji.
Najcz ciej wyst puj dwa typy zakleszcze :
1. Zakleszczenia cykliczne, wynikaj ce z tego, e dwa procesy w ró nych
kolejno ciach próbuj uzyska dost p do tych samych zasobów. [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • forum-gsm.htw.pl