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?
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.
źródło
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.
źródło