2009-07-07 32 views
5

Làm thế nào để các bạn quyết định rằng bạn nên gói sql trong một giao dịch?Cách quyết định sử dụng các giao dịch cơ sở dữ liệu

Vui lòng ném một số ánh sáng về điều này.

Chúc mừng !!

+0

@Lance Roberts , tsql đến từ đâu? điều này có thể áp dụng cho bất kỳ cơ sở dữ liệu nào. OP không bao giờ nói máy chủ sql. –

Trả lời

8

Giao dịch sẽ được sử dụng khi bạn cần một bộ thay đổi được xử lý hoàn toàn để xem xét hoạt động hoàn chỉnh và hợp lệ. Nói cách khác, nếu chỉ một phần thực hiện thành công, điều đó có dẫn đến dữ liệu không đầy đủ hoặc không hợp lệ được lưu trữ trong cơ sở dữ liệu của bạn không?

Ví dụ: nếu bạn có chèn, sau đó là bản cập nhật, điều gì sẽ xảy ra nếu chèn thành công và cập nhật không thành công? Nếu điều đó sẽ dẫn đến dữ liệu không đầy đủ (trong trường hợp này, một bản ghi mồ côi), bạn nên bọc hai câu lệnh trong một giao dịch để làm cho chúng hoàn thành như một "bộ".

+2

"được sử dụng khi bạn cần một bộ thay đổi cần được xử lý" Tôi nghĩ rằng 'nhu cầu' thứ hai là không cần thiết. –

4

nếu bạn có nhiều câu lệnh sửa đổi dữ liệu duy nhất để thực hiện để hoàn thành tác vụ, tất cả phải nằm trong giao dịch. Bằng cách này, nếu một trong những đầu tiên là thành công, nhưng bất kỳ trong những điều sau đây có một lỗi, bạn có thể rollback (hoàn tác) tất cả mọi thứ như thể không có gì đã từng được thực hiện.

3

Bất cứ khi nào bạn không thích nó nếu một phần của hoạt động có thể hoàn thành và một phần của nó không.

5

Nếu bạn đang thực hiện hai hoặc nhiều câu lệnh mà bạn mong muốn có chức năng nguyên tử, bạn nên bọc chúng trong một giao dịch.

1

Bất cứ lúc nào bạn muốn khóa cơ sở dữ liệu và có khả năng làm hỏng ứng dụng sản xuất của bạn, bất cứ lúc nào bạn muốn xả rác ứng dụng của bạn với những cơn ác mộng có thể mở rộng ẩn đi trước và tạo giao dịch. Làm cho nó lớn, chậm, và đặt một vòng lặp bên trong.

Nghiêm túc, không có câu trả lời nào ở trên thừa nhận sự cố thương mại và tiềm ẩn xảy ra với việc sử dụng nhiều giao dịch. Hãy cẩn thận, và xem xét rủi ro/phần thưởng mỗi lần.

Ebay không sử dụng chúng. Tôi chắc chắn có rất nhiều người khác.

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

+0

Tôi luôn thấy thú vị khi thấy cách tiếp cận về cách thay thế giao dịch bằng các kỹ thuật khác. –

0

Bất cứ khi nào bất kỳ hoạt động thuộc ACID (Atomicity, quán, Isolation, Độ bền) tiêu chí mà bạn nên sử dụng các giao dịch

đọc này article

Các vấn đề liên quan