Udostępnij za pomocą


sys.dm_tran_current_snapshot (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca wirtualną tabelę, która wyświetla wszystkie aktywne transakcje w momencie rozpoczęcia bieżącej transakcji snapshot. Jeśli bieżąca transakcja nie jest transakcją migawkową, funkcja ta nie zwraca żadnych wierszy. sys.dm_tran_current_snapshot jest podobny do sys.dm_tran_transactions_snapshot, z tą różnicą, że sys.dm_tran_current_snapshot zwraca tylko aktywne transakcje dla bieżącej transakcji snapshot.

Uwaga / Notatka

Aby wywołać to z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_tran_current_snapshot. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Składnia

  
sys.dm_tran_current_snapshot  

Zwracana tabela

Nazwa kolumny Typ danych Description
transaction_sequence_num bigint Numer sekwencyjny transakcji aktywnej.
pdw_node_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.

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.

Przykłady

Poniższy przykład wykorzystuje scenariusz testowy, w którym cztery równoległe transakcje, każda oznaczona numerem sekwencji transakcji (XSN), są uruchamiane w bazie danych, w której opcje ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT są ustawione na ON. Następujące transakcje są w trakcie:

  • XSN-57 to operacja aktualizacji w izolacji serializowanej.

  • XSN-58 jest tym samym co XSN-57.

  • XSN-59 to operacja selekcyjna w izolacji migawkowej.

  • XSN-60 jest tym samym co XSN-59.

Następujące zapytanie jest wykonywane w zakresie XSN-59.

SELECT   
    transaction_sequence_num  
  FROM sys.dm_tran_current_snapshot;  

Oto zestaw wyników.

transaction_sequence_num  
------------------------  
57  
58  

Wyniki pokazują, że XSN-57 i XSN-58 były aktywne w momencie rozpoczęcia transakcji snapshot XSN-59. Ten sam wynik utrzymuje się nawet po zatwierdzeniu lub cofnięciu XSN-57 i XSN-58, aż do zakończenia transakcji snapshot.

To samo zapytanie jest wykonywane w zakresie XSN-60.

Oto zestaw wyników.

transaction_sequence_num  
------------------------  
57  
58  
59  

Wyjście dla XSN-60 obejmuje te same transakcje, które pojawiają się dla XSN-59, ale także XSN-59, który był aktywny w momencie uruchomienia XSN-60.

Zobacz też

Dynamiczne widoki zarządzania i funkcje (Transact-SQL)
Dynamiczne widoki zarządzania i funkcje związane z transakcjami (Transact-SQL)