Kwerend rozproszonych i transakcji rozproszonych
Aparat baz danych programu SQL Server Umożliwia tworzenie łącza do źródeł danych OLE DB, nazywane połączonych serwerów.Po łączenie danych OLE DB źródło, można:
Wiersz odwołania ustawia ze źródeł danych OLE DB jako tabele w Transact-SQL instrukcji.
- Przesłać polecenia do źródeł danych OLE DB i zawierają zestawy wynikowe wiersza jako tabele w Transact-SQL instrukcji.
Każda zapytanie rozproszone można odwoływać się do wielu serwer połączonys wykonać albo aktualizacji lub operacji przeciwko poszczególnych odczytu i serwer połączony.zapytanie rozproszone można wykonywać operacje odczytu przeciwko niektóre serwery połączone i aktualizowanie operacji wobec innych serwerów połączonych.Ogólnie rzecz biorąc Aparat baz danych wymaga obsługi transakcji rozproszonych od odpowiedniego dostawca OLE DB, w każdym przypadku, gdy dane z więcej niż jednego serwer połączony prawdopodobnie zaktualizowane w transakcji.Stąd typy kwerend, które są obsługiwane na serwerach połączonych zależą od poziom wsparcia dla transakcji w dostawców OLE DB.OLE DB definiuje dwa opcjonalne interfejsy zarządzania transakcji:
ITransactonLocal obsługuje transakcje lokalne źródło danych OLE DB.
ITransactionłączyć umożliwia dostawca łączyć transakcji rozproszonej, zawierający innych menedżerów zasób.
Każdy dostawca obsługujący ITransactionJoin obsługuje również ITransactonLocal.
Jeśli zapytanie rozproszone jest wykonywany, gdy połączenie jest tryb autozatwierdzania wynosi, reguły te stosuje się:
Operacje odczytu są dozwolone wobec dostawców, które nie obsługują ITransactonLocal.
Wszystkie operacje aktualizacji są dozwolone dla wszystkich dostawców, które obsługują ITransactonLocal.
Kontrolowanie wystąpienie Aparat baz danych wywołuje automatycznie ITransactonLocal w każdego serwer połączony uczestniczących w operacji aktualizacji uruchomić transakcji lokalnej.Zatwierdza on je po instrukcji powiedzie się lub zrolowany, jeśli instrukcja nie powiedzie się.
Kwerendy rozproszone jest przeciwko rozproszony widok partycjonowany lub jest wykonywany, gdy połączenie jest w obu jawne lub transakcja niejawna, reguły te stosuje się:
Operacje odczytu są dozwolone wobec dostawców, które nie obsługują ITransactionJoin.Dostawcy, które nie obsługują żadnych transakcji lub obsługują tylko ITransactonLocal nie może uczestniczyć w operacji aktualizacji.
Jeśli ustawienie XACT_ABORT jest włączone, wszystkie operacje aktualizacji są dozwolone dla wszystkich dostawców, które obsługują ITransactionJoin.Kontrolowanie wystąpienie Aparat baz danych wywołuje automatycznie ITransactionJoin w każdym uczestniczących w operacji aktualizacji do serwer połączony włączyć go w transakcjach rozproszonych.Microsoft Distributed Transaction Coordinator (MS DTC) następnie przekazuje je albo toczy się je po kontrolowania serwera wskazuje, że transakcja jest przekazana lub wycofana.
Jeśli ustawienie XACT_ABORT jest wyłączona, serwer połączony również musi obsługiwać transakcji zagnieżdżonych przed operacje aktualizacji są dozwolone.Transakcje zagnieżdżone są obsługiwane, jeśli dostawca obsługuje telefonicznej ITransactionLocal::StartTransaction , gdy jest już istniejących transakcji dla sesja.Dzięki temu SQL Server do wycofać pojedyncze instrukcje w kwerendach rozproszonych bez wycofywanie transakcji całego.
Powyższe zasady pociąga za sobą następujące ograniczenia dla dostawców, które nie obsługuje zagnieżdżonych transakcji: Operacje aktualizacji są dozwolone w transakcja rozproszona, tylko wtedy, gdy opcja XACT_ABORT jest włączone.