Udostępnij za pośrednictwem


Efekty współbieżności

Modyfikowanie danych użytkownicy mogą mieć wpływ na innych użytkowników, którzy są odczytywania lub modyfikowania tych samych danych w tym samym czas.Użytkownicy ci są określane jako być jednocześnie dostęp do danych.Jeśli system magazynowania danych, nie ma współbieżność kontroli, użytkownicy mogą zobaczyć następujące skutki uboczne:

  • Aktualizacje utracone

  • Niezakończone zależność (odczyt zanieczyszczony)

  • Niespójne analizy (odczyt niemożliwy do powtórzenia)

  • Odczyty fantomu

  • Odczyty brakujące i podwójne spowodowane aktualizacji wiersza

Aktualizacje utracone

Utracone aktualizacje występują, gdy dwie lub więcej transakcji ten sam wiersz, a następnie zaktualizować wiersz, w oparciu o pierwotnie wybraną wartość.Każda transakcja nie rozpoznaje innych transakcji.Ostatnia aktualizacja zastępuje aktualizacje dokonane przez inne transakcje, które wyniki utratę danych.

Na przykład dwa edytory należy elektroniczną kopię tego samego dokumentu.Każdy edytor zmienia kopię niezależnie, a następnie zapisuje zmienionej kopii, a tym samym zastępowaniu oryginalnego dokumentu.Edytor, który zapisuje kopię zmienionych zastępuje ostatnie zmiany wprowadzone przez innego edytora.Jeden edytor nie może uzyskać dostępu pliku dopóki innych Edytor zostały zakończone i transakcji można uniknąć tego problemu.

Niezakończone zależność (Dirty odczytu)

Zależność nieprzydzielonych występuje, gdy druga transakcja zaznacza wiersz, który jest aktualizowany przez inną transakcję.Druga transakcja odczytuje dane, które nie zostało popełnione jeszcze i mogą być zmieniane przez aktualizacją wiersza transakcji.

Na przykład edytor wprowadzania zmian do dokumentu elektronicznego.Podczas zmiany drugi Edytor Trwa kopię dokumentu, który zawiera wszystkie zmiany wprowadzone w pory i rozsyła dokument do określonej grupy odbiorców.Pierwszy edytor zadecyduje następnie pory wprowadzone zmiany są nieprawidłowe i usuwa zmiany i zapisuje dokument.Rozproszone dokument zawiera zmiany, które już istnieją i powinny być traktowane tak, jakby nigdy nie istniał.Nie można odczytać zmieniony dokument dopiero pierwszy edytor nie końcowego Zapisz zmiany i zatwierdza transakcję można uniknąć tego problemu.

Analiza niespójne (odczyt Nonrepeatable)

Analiza niespójne występuje, gdy druga transakcja uzyskuje dostęp do takie same kilka wierszy czass odczytów różnych danych i każdego czas.Niespójne analizy przypomina nieprzydzielonych zależność, transakcja jest zmiana danych czytania druga transakcja.Jednak w analizie niespójne dane odczytane przez drugi transakcji zostało popełnione w transakcji dokonanych zmian.Ponadto niespójne analizy obejmuje wiele odczytów (dwa lub więcej w tym samym wierszu) i każdy czas modyfikacji przez inną transakcję; dlatego termin odczyt niemożliwy do powtórzenia.

Na przykład edytor odczytuje dwa razy tego samego dokumentu, ale między odczytu modułu zapisującego ponownie zapisuje dokument.Gdy Edytor odczytuje dokument dla drugiego czas, została zmieniona.Oryginalny odczytu nie powtarzalnych.Ten problem można uniknąć, jeśli moduł zapisujący nie może zmienić dokument, aż zakończy Edytor odczytu ostatniego czas.

Odczyty fantomu

Odczyty fantomu wystąpić podczas wstawiania lub usuwania akcja jest przeprowadzana na podstawie wiersza, który należy do zakres wierszy odczytywany przez transakcję.Transakcja odczytu pierwszy zakres wierszy zawiera wiersz, który już nie istnieje w drugiego lub kolejnego odczytu z usunięcia różnych transakcji.Podobnie drugiego lub kolejnego odczytu transakcji zawiera wiersz, który nie istnieje w oryginalnym odczytu w wyniku wstawiania przez inną transakcję.

Na przykład edytor zmian dokumentów przedłożonych przez moduł zapisujący, ale gdy zmiany są włączone do wzorcową kopię dokumentu przez dział produkcji, stwierdzą, że dodano nową porcję materiału do dokumentu przez autora.Podobne do odczyt niemożliwy do powtórzenia sytuacji tego problemu można uniknąć, jeśli nie można dodać nowego materiału do dokumentu dopóki działu produkcji i Edytor Zakończ pracę z oryginalnego dokumentu.

Odczyty brakujące i podwójne spowodowane aktualizacji wiersza

  • Brak zaktualizowanych wierszy lub wyświetlanie zaktualizowanych wierszy wielokrotnie

    Transakcje, które działają poziom odczyt NIEPRZEKAZANY nie wydają blokady współużytkowane, aby zapobiec innymi transakcjami modyfikację dane odczytane przez bieżącą transakcję.Transakcje, które działają poziom odczytu popełnione wydawania blokady współużytkowane, ale blokad wiersza lub strona są zwalniane po odczyt wiersza.W każdym przypadek podczas skanowania indeksu, jeśli inny użytkownik zmieni kolumna klucz indeks wiersza podczas swojego odczytu wiersz może ponownie wyświetlone, jeśli zmianie klucz przeniesiona wiersz z wyprzedzeniem skanowania.Podobnie wiersz nie mogą być wyświetlane, jeśli zmianie klucz przeniesiona wiersz indeksu, który miał już przeczytane.Aby tego uniknąć, należy użyć wskazówki SERIALIZABLE lub HOLDLOCK lub wersji wiersza.Aby uzyskać więcej informacji, zobacz Wskazówki tabel (Transact-SQL) i Wiersz wersji na podstawie poziomów izolacji w aparacie bazy danych.

  • Brakuje jednego lub kilku wierszy, które nie zostały miejsce docelowe aktualizacji

    Gdy używasz odczyt NIEPRZEKAZANY, jeśli kwerenda odczytuje wiersze przy użyciu skanowania zamówienia alokacji (przy użyciu stron IAM), mogą pozostać niewykryte wierszy, jeśli transakcja jest przyczyną podziału strona.To nie może występować podczas korzystania z odczytu, ponieważ blokada tabeli posiadanych podczas podziału strona i nie następuje, jeśli tabela ma indeks klastrowany, ponieważ aktualizacje nie może powodować podziały strona.