Używanie migawki zatwierdzonej do odczytu w celu zapewnienia spójności danych

Ukończone

Chociaż usługa Azure Synapse Analytics jest używana do przechowywania danych do celów analitycznych, pule SQL obsługują korzystanie z transakcji i są zgodne z zasadami transakcji ACID (niepodzielność, spójność, izolacja i trwałość) skojarzonymi z systemami zarządzania relacyjnymi bazami danych.

W związku z tym mechanizmy zamykania i blokowania są wprowadzane w celu utrzymania integralności transakcyjnej przy jednoczesnym zapewnieniu właściwej współdziałania podczas pracy z obciążeniem. Te blokujące aspekty mogą znacznie opóźnić uzupełnianie zapytań. Poziom izolacji obsługi transakcyjnej jest domyślnie ustawiony na ODCZYT NIEZATWIERDZONY. Można ją zmienić na IZOLACJĘ MIGAWKOWEGO ODCZYTU ZATWIERDZONEGO (READ COMMITTED SNAPSHOT ISOLATION), włączając opcję bazy danych READ_COMMITTED_SNAPSHOT dla bazy danych użytkownika po nawiązaniu połączenia z bazą danych master.

Po włączeniu, wszystkie transakcje w tej bazie danych są wykonywane w trybie IZOLACJI MIGAWKI ZATWIERDZONE DO ODCZYTU, a ustawianie trybu ODCZYT NIEZATWIERDZONY na poziomie sesji nie będzie honorowane.

Jeśli wystąpią opóźnienia w realizacji zapytań, należy zastosować poziom izolacji Read Committed Snapshot, aby to złagodzić. Odczyt zatwierdzonej migawki tworzy kopię wierszy, do których odwołuje się zapytanie, jeśli jest aktualizowana, tak aby dane były spójne. Wersja używanych danych pozostaje tylko przez czas trwania zapytania oraz wszystkie zależne zapytania, co zwiększa szybkość ich wykonywania kosztem miejsca potrzebnego do przechowywania wielu wersji danych podczas przetwarzania.

Aby włączyć FUNKCJĘ READ COMMITTED SNAPSHOT ISOLATION, uruchom to polecenie podczas nawiązywania połączenia z bazą danych MASTER.

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON