2009-07-07 19 views
5

Come decidete voi di dover eseguire il wrapping di SQL in una transazione?Come decidere di utilizzare le transazioni del database

Per favore, fai un po 'di luce su questo.

Saluti !!

+0

@Lance Roberts da dove viene tsql? questo può essere applicato a qualsiasi database. OP non ha mai detto SQL Server. –

risposta

8

Una transazione deve essere utilizzata quando è necessario un insieme di modifiche da elaborare completamente per considerare l'operazione completa e valida. In altre parole, se solo una parte viene eseguita correttamente, ciò porterà a dati incompleti o non validi memorizzati nel database?

Ad esempio, se si dispone di un inserimento seguito da un aggiornamento, cosa succede se l'inserimento riesce e l'aggiornamento non riesce? Se ciò risultasse in dati incompleti (in questo caso, un record orfano), dovresti racchiudere le due affermazioni in una transazione per farle completare come "set".

+2

"da utilizzare quando è necessario elaborare una serie di modifiche" Penso che il secondo "fabbisogno" non sia necessario. –

4

se si dispone di più di una singola istruzione di modifica dei dati da eseguire per completare un'attività, tutto deve essere all'interno di una transazione.

In questo modo, se il primo ha esito positivo, ma uno dei seguenti ha un errore, è possibile eseguire il rollback (annullamento) di tutto come se nulla fosse mai stato fatto.

3

Ogni volta che non ti piacerebbe se parte dell'operazione fosse completa e parte di esso non lo fosse.

5

Se si eseguono due o più istruzioni che si prevede siano funzionalmente atomiche, è necessario raggrupparle in una transazione.

1

Ogni volta che si desidera bloccare il database e potenzialmente bloccare l'applicazione di produzione, ogni volta che si desidera eliminare l'applicazione con incubi di scalabilità nascosti andare avanti e creare una transazione. Rendilo grande, lento e mettilo dentro.

Seriamente, nessuna delle risposte di cui sopra riconosce il trade-off e i potenziali problemi derivanti dall'uso intenso delle transazioni. Fai attenzione, e considera il rischio/premio ogni volta.

Ebay non li usa affatto. Sono sicuro che ce ne sono molti altri.

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

+0

È stato sempre interessante per me vedere gli approcci su come sostituire le transazioni con altre tecniche. –

0

Ogni volta che qualsiasi operazione rientra ACID (Atomicità , Consistenza, isolamento, durevolezza) criteri si dovrebbe utilizzare le transazioni

Leggi questo article

Problemi correlati