SQL Server: instrukcje vs. partie vs. transakcje vs. połączenia


10

Moje pytanie jest proste: jakie są między nimi różnice / podobieństwa / liczności

  • Transakcje
  • Partie
  • Połączenia i
  • Sprawozdania

w SQL Server?

O ile rozumiem, połączenie jest pojedynczym kanałem komunikacji między wystąpieniem programu SQL Server a klientem, w którym wykonywane są zbiory instrukcji pogrupowane jako partie. Partia jest niejawnie lub jawnie mapowana na jedną lub kilka transakcji. Czy to jest poprawne?


Odpowiedzi:


4

Dosyć.

Partia to po prostu partia poleceń, które należy wykonać. Transakcja to zestaw poleceń, które mają zagwarantowane całkowite powodzenie lub niepowodzenie (tzn. Nie wykona połowy poleceń, a następnie zakończy się niepowodzeniem w przypadku pozostałych, jeśli jedno z nich zakończy się niepowodzeniem, wszystkie zawiodą).

O ile mi wiadomo, SQL Server korzysta z puli połączeń, więc nie polegałbym na jednym połączeniu na pomysł klienta.


1
Jaka jest liczność między partią a transakcją? Czy możliwe jest posiadanie wielu partii na transakcję? Co powiesz na odwrót?

1
O ile mi wiadomo, możliwe jest posiadanie wielu transakcji na partię, ale nie jest możliwe posiadanie wielu partii na transakcję.
Cromulent

6

Transakcje i partie to dwie niezależne koncepcje. Oba mogą być używane w konfiguracji jeden do wielu.

Bloki transakcyjne to pojedyncza „jednostka pracy”, koncepcja, która wymaga, że ​​sql musi albo w pełni działać, albo w ogóle nie działać. Na przykład, jeśli zaktualizujesz dwie tabele połączone ze sobą; oba muszą się powieść, aby zmiana danych została zatwierdzona. [ https://msdn.microsoft.com/en-us/library/ms174377.aspx]

Batch to koncepcja Microsoft. Dzięki narzędziom stworzonym przez Microsoft, takim jak sqlcmd i osql, partia po prostu zapewnia pojedynczy plan wykonania. Na przykład, jeśli utworzysz zmienną i użyjesz jej poza partią, narzędzie zgłosi błąd. [ https://msdn.microsoft.com/en-us/library/ms188037.aspx]

Tak więc możesz mieć wiele partii, które aktualizują wiele tabel w jednym bloku transakcji. O ile nie naruszają one indywidualnych planów wykonania partii.

Ponadto w ramach partii można mieć wiele bloków transakcji, zapewniając integralność danych między jednostkami bazy danych, takimi jak tabele.

Połączenie to po prostu uzgadnianie komunikacji, które pozwala na uruchamianie zapytań na serwerze.

Instrukcje to pojedyncze wiersze tworzące zapytanie. GO (separator partii T-Sql) i POCZĄTEK TRANSAKCJI (ANSI SQL do rozpoczęcia nowego bloku transakcji) są instrukcjami.


1

Partie i transakcje istnieją na tym samym poziomie. Partia to zbiór niepowiązanych w inny sposób poleceń SQL. Transakcja to zbiór poleceń SQL, które działają (w odniesieniu do wszystkich innych użytkowników tej bazy danych) jako jedna instrukcja.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.