Udostępnij za pośrednictwem


Podwyższanie poziomu transakcji

Dotyczy:programu SQL Server

promocji transakcji opisuje uproszczoną, lokalną transakcję, która może być automatycznie promowana do w pełni dystrybucyjnej transakcji zgodnie z potrzebami. Gdy zarządzana procedura składowana jest wywoływana w ramach transakcji bazy danych na serwerze, kod środowiska uruchomieniowego języka wspólnego (CLR) jest uruchamiany w kontekście transakcji lokalnej. Jeśli otworzysz połączenie z serwerem zdalnym w ramach transakcji bazy danych, połączenie z serwerem zdalnym zostanie wymienione do transakcji rozproszonej, a transakcja lokalna jest automatycznie promowana do transakcji rozproszonej.

W związku z tym podwyższenie poziomu transakcji minimalizuje obciążenie transakcji rozproszonych przez odroczenie tworzenia transakcji rozproszonej, dopóki nie będzie potrzebne. Podwyższenie poziomu transakcji jest automatyczne, jeśli zostało włączone przy użyciu słowa kluczowego Enlist i nie wymaga interwencji od dewelopera. Dostawca danych programu .NET Framework dla programu SQL Server zapewnia obsługę podwyższania poziomu transakcji za pośrednictwem klas w przestrzeni nazw programu .NET Framework System.Data.SqlClient.

Słowo kluczowe Enlist

Właściwość ConnectionString obiektu SqlConnection obsługuje słowo kluczowe Enlist, które wskazuje, czy System.Data.SqlClient wykrywa konteksty transakcyjne i automatycznie zapisuje połączenie w transakcji rozproszonej. Jeśli to słowo kluczowe ma wartość true (wartość domyślna), połączenie jest automatycznie wyświetlane w bieżącym kontekście transakcji wątku otwierającego. Jeśli to słowo kluczowe ma wartość false, połączenie SqlClient nie wchodzi w interakcję z transakcją rozproszoną. Jeśli Enlist nie zostanie określona w parametrach połączenia, połączenie zostanie automatycznie umieszczone w transakcji rozproszonej, jeśli zostanie wykryte w momencie otwarcia połączenia.

Transakcje rozproszone

Transakcje rozproszone zwykle zużywają znaczne zasoby systemowe. Program Microsoft Distributed Transaction Coordinator (MS DTC) zarządza takimi transakcjami i integruje wszystkich menedżerów zasobów, do których uzyskuje dostęp w tych transakcjach. Z drugiej strony promocja transakcji jest specjalną formą transakcji System.Transactions, która skutecznie deleguje pracę do prostej transakcji programu SQL Server. System.Transactions, System.Data.SqlClienti sql Server koordynować pracę związaną z obsługą transakcji, promując ją do pełnej transakcji rozproszonej zgodnie z potrzebami.

Zaletą korzystania z promocji transakcji jest to, że po otwarciu połączenia z aktywną transakcją TransactionScope, a żadne inne połączenia nie są otwarte, transakcje są zatwierdzane jako uproszczona transakcja, a nie naliczenie dodatkowych kosztów na pełną transakcję rozproszoną. Aby uzyskać więcej informacji na temat TransactionScope, zobacz Use System.Transactions.