Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca wirtualną tabelę dla sequence_number transakcji aktywnych w momencie rozpoczęcia każdej transakcji snapshot. Informacje zwracane przez ten widok mogą pomóc Ci w następującym zadaniu:
Znajdź liczbę aktywnych transakcji snapshot.
Zidentyfikuj modyfikacje danych, które są ignorowane przez konkretną transakcję snapshot. W przypadku transakcji aktywnej w momencie rozpoczęcia transakcji migawkowej wszystkie modyfikacje danych dokonywane przez tę transakcję, nawet po jej zatwierdzeniu, są ignorowane przez transakcję migawkową.
Na przykład rozważmy następujące wyjście z sys.dm_tran_transactions_snapshot:
transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59 0 57
59 0 58
60 0 57
60 0 58
60 0 59
60 3 57
60 3 58
60 3 59
60 3 60
Kolumna transaction_sequence_num wskazuje numer sekwencji transakcji (XSN) aktualnych transakcji migawkowych. Wyjście pokazuje dwa: 59 oraz 60. Kolumna snapshot_sequence_num ta określa numer sekwencji transakcji aktywnych na początku każdej transakcji snapshot.
Wyniki pokazują, że transakcja snapshot XSN-59 rozpoczyna się, gdy działają dwie aktywne transakcje, XSN-57 i XSN-58. Jeśli XSN-57 lub XSN-58 dokonuje modyfikacji danych, XSN-59 ignoruje te zmiany i stosuje wersjonowanie wierszy, aby utrzymać transakcyjnie spójny widok bazy danych.
Transakcja migawkowa XSN-60 ignoruje modyfikacje danych wprowadzone przez XSN-57, XSN-58 oraz XSN 59.
Zwracana tabela
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| transaction_sequence_num | bigint | Numer sekwencyjny transakcji (XSN) transakcji migawkowej. |
| snapshot_id | int | Identyfikator migawki dla każdego Transact-SQL zaczął się pod read-commit, używając wersjonowania wiersza. Ta wartość służy do wygenerowania transakcyjnie spójnego widoku bazy danych, wspierającego każde zapytanie wykonywane w trybie read-commit, przy użyciu wersjonowania wiersza. |
| snapshot_sequence_num | bigint | Numer sekwencyjny transakcji transakcji, która była aktywna, gdy transakcja snapshot się rozpoczęła. |
Permissions
W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.
W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.
Uwagi
Gdy rozpoczyna się transakcja migawkowa, silnik bazy danych rejestruje wszystkie aktywne transakcje w danym momencie. sys.dm_tran_transactions_snapshot raportuje te informacje dla wszystkich obecnie aktywnych transakcji snapshot.
Każda transakcja jest identyfikowana przez numer sekwencyjny transakcji, który jest przypisywany na jej początku. Transakcje rozpoczynają się w momencie wykonania instrukcji BEGIN TRANSACTION lub BEGIN WORK. Jednak Silnik Bazy Danych przypisuje numer sekwencyjny transakcji wraz z wykonaniem pierwszego Transact-SQL polecenia, które uzyskuje dostęp do danych po poleceniu BEGIN TRANSACTION lub BEGIN WORK. Numery sekwencji transakcji są zwiększane o jeden.
Zobacz też
Dynamiczne widoki zarządzania i funkcje (Transact-SQL)
Dynamiczne widoki zarządzania i funkcje związane z transakcjami (Transact-SQL)