W jaki sposób decydujesz, że powinieneś pakować sql w transakcję?Jak zdecydować o korzystaniu z transakcji bazy danych
Proszę rzucić trochę światła na to.
Pozdrawiam!
W jaki sposób decydujesz, że powinieneś pakować sql w transakcję?Jak zdecydować o korzystaniu z transakcji bazy danych
Proszę rzucić trochę światła na to.
Pozdrawiam!
Należy użyć transakcji, aby komplet zmian został całkowicie przetworzony, aby operacja była kompletna i ważna. Innymi słowy, jeśli tylko część zostanie pomyślnie wykonana, czy spowoduje to, że niepełne lub nieprawidłowe dane będą przechowywane w bazie danych?
Na przykład, jeśli masz wstawkę, a następnie aktualizację, co się stanie, jeśli wstawienie się powiedzie i aktualizacja się nie powiedzie? Jeśli spowodowałoby to niepełne dane (w tym przypadku osierocony rekord), powinieneś zawrzeć te dwie instrukcje w transakcji, aby uzyskać je jako "zestaw".
"użyj, gdy potrzebujesz zestawu zmian, które trzeba przetworzyć" Myślę, że drugie "potrzeby" są niepotrzebne. –
Jeśli masz więcej niż jedną instrukcję modyfikującą dane do wykonania, aby ukończyć zadanie, wszystkie powinny być w ramach transakcji.
W ten sposób, jeśli pierwszy z nich się powiedzie, ale którykolwiek z poniższych błędów zawiera błąd, możesz wycofać (cofnąć) wszystko, jak gdyby nigdy nic.
Ilekroć nie podoba ci się, jeśli część operacji może się zakończyć, a część nie.
Jeśli wykonujesz dwie lub więcej instrukcji, które mają być funkcjonalnie atomowe, powinieneś zawrzeć je w transakcji.
Za każdym razem, gdy chcesz zablokować bazę danych i potencjalnie awarię aplikacji produkcyjnej, za każdym razem, gdy chcesz zaśmiecać swoją aplikację ukrytą skalowalnością, koszmary pójść do przodu i utworzyć transakcję. Spraw, aby był duży, wolny i włożył pętlę do środka.
Poważnie, żadna z powyższych odpowiedzi nie potwierdza kompromisu i potencjalnych problemów związanych z intensywnym wykorzystaniem transakcji. Bądź ostrożny i za każdym razem rozważaj ryzyko/nagrodę.
Serwis eBay w ogóle ich nie używa. Jestem pewien, że jest wielu innych.
http://www.infoq.com/interviews/dan-pritchett-ebay-architecture
Zawsze interesowało mnie podejście do zastępowania transakcji innymi technikami. –
Ilekroć jakakolwiek operacja podlega acid (atomowości, Spójność, Izolacja, Trwałość) kryteria należy wykorzystywać transakcje
Przeczytaj ten article
@Lance Roberts , skąd pochodzi tsql? może to dotyczyć dowolnej bazy danych. OP nigdy nie powiedział serwera sql. –