Efekty współbieżność

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

  • Utracone aktualizacji

  • Zależność nieprzydzielone (odczyt zanieczyszczony)

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

  • Odczyty fantomu

  • Brak i podwójne odczytów spowodowane aktualizacji wiersza

Aktualizacje utracone

Utracone aktualizacje występują wtedy, gdy dwie lub więcej transakcji wybierz ten sam wiersz, a następnie zaktualizować wiersz, w zależności od wartości, które początkowo były zaznaczone.Każda transakcja nie rozpoznaje innych transakcji.Ostatnia aktualizacja zastępuje aktualizacje dokonane przez innych transakcji, które powoduje 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 kopii zmiany, 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 w pliku do innego edytora zostały zakończone i zatwierdzeniu transakcji można uniknąć tego problemu.

Zależność nieprzydzielone (buforowaniu odczytu)

Zależność nieprzydzielonych występuje wówczas, gdy transakcja drugi wybiera wiersz, który jest aktualizowany przez inną transakcję.Drugi transakcji odczytuje dane, które nie została zatwierdzona jeszcze i mogą być zmieniane przez aktualizowania wiersza transakcji.

Na przykład za pomocą edytora wprowadza zmiany do dokumentu elektronicznego.Podczas dokonywania zmian drugi edytora ma kopię dokumentu, który zawiera wszystkie zmiany wprowadzone w miarę i rozsyła dokument do określonej grupy odbiorców.Pierwszy edytora decyduje się następnie dotąd dokonane zmiany są nieprawidłowe i usuwa zmiany i zapisuje dokument.Rozproszone dokument zawiera zmiany nie są już istnieje i powinny być traktowane tak, jakby nigdy nie istniał.Nikt nie może odczytać zmienionemu dokumentowi, aż do pierwszej edytora nie końcowe zapisywania zmian i zatwierdza transakcję można uniknąć tego problemu.

Analiza niezgodne (odczyt niemożliwy do powtórzenia)

Niespójna analizy występuje, gdy uzyskuje dostęp do drugiego transakcji taki sam wiersz kilka odczytów i czas s różnych danych każdego czas.Niespójna analizy jest podobna do nieprzydzielonych zależność tym, że inna transakcja jest zmiana danych, które odczytuje drugiego transakcji.Jednak w analizie niespójne dane odczytane przez drugi transakcji zostało dokonanych przez transakcję, wprowadzone zmiany.Ponadto niespójne analizy obejmuje wiele odczytów (dwa lub więcej z tym samym wierszu), a każdy czas informacji zostanie zmieniony przez inną transakcję; w ten sposób termin odczyt niemożliwy do powtórzenia.

Na przykład za pomocą edytora odczytuje dwa razy tego samego dokumentu, ale między każdego odczytu moduł zapisujący ponownie zapisuje dokument.Gdy Edytor czyta dokument dla drugiego czas, została ona zmieniona.Oryginalny odczytu nie powtarzalnych.Moduł zapisujący nie można zmienić w dokumencie, aż zakończy czytanie go po raz ostatni edytora można uniknąć tego problemu.

Odczyty fantomu

Odczyty fantomu występują wtedy, gdy Akcja wstawiania lub usuwania jest wykonywane dla wiersza, który należy do zakres wierszy odczytywany przez transakcję.Z transakcją odczytu pierwszego zakres wierszy zawiera wiersz, który już nie istnieje w drugiego lub kolejnego odczytu z powodu usunięcia przez inną transakcję.Podobnie drugiego lub kolejnego odczytu z transakcją zawiera wiersz, który nie istnieje w oryginalnym odczytu w wyniku wstawiania przez inną transakcję.

Na przykład za pomocą edytora wprowadza zmiany do przedstawionych przez Autor dokumentu, ale gdy zmiany są włączone do główną kopię dokumentu przez dział produkcji, stwierdzą, że nowy materiał nieedytowane został dodany do dokumentu przez autora.Podobnie jak nonrepeatable sytuacji odczytu, ten problem można można uniknąć nikt nie można dodać nowego materiału do dokumentu do działu produkcji i Edytor zakończyć pracę z oryginalnego dokumentu.

Odczyty brakujące i podwójne spowodował błąd przez aktualizacje wierszy

  • Brak zaktualizowanych wierszy lub wyświetlanie zaktualizowanych wierszem wiele razy

    Transakcje, które działają poziom READ NIEZAKOŃCZONE nie wydają udostępnionego blokad zapobiec inne transakcje modyfikację danych odczytywane przez bieżącej transakcji.Transakcje, które działają poziom POPEŁNIONYCH READ wystawiają blokad udostępnionych, ale blokad wiersza lub strona są zwalniane po wierszu jest do odczytu.W obu przypadkach jeżeli skanowanego indeksu, jeśli inny użytkownik zmieni kolumna klucz indeks wiersza podczas swojego odczytu wiersz mogą się pojawić ponownie zmiany klucz przeniesienia wiersz do pozycji niższy od założonego skanowania.Podobnie wiersz może się nie pojawić, jeśli zmiany klucz przeniesione wiersz do pozycji indeksu, które zostały już przeczytane.Aby tego uniknąć, należy użyć SERIALIZABLE lub HOLDLOCK Wskazówka lub wersji wiersza.Aby uzyskać więcej informacji zobacz Wskazówki do tabela (języka Transact-SQL) i Row Versioning-based Isolation Levels in the Database Engine.

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

    Podczas pracy z odczytu NIEPRZYDZIELONYCH, jeśli kwerenda odczytuje wiersze, używając skanowania zamówienia alokacji (za pomocą stron IAM), mogą pominąć wierszy, jeżeli inna transakcja jest przyczyną podziału strona.Nie może się to zdarzyć, jeśli używasz odczytu zatwierdzona, ponieważ blokada tabeli jest przechowywana w trakcie podziału strona i nie zdarzyć jeśli tabela ma indeks klastrowany, ponieważ aktualizacje nie powodują podziały strona.