Tôi có thêm đọc cam kết sau khi THIẾT LẬP CẤP CẤP CẤP CẤP CẤP CẤP KHÔNG?


9

Trong một thủ tục được lưu trữ, tôi có những điều sau đây: (máy chủ sql 2008)

 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
 BEGIN TRANSACTION getStuff
 BEGIN TRY 
    /*  some selects, updates, etc, etc. */
    ....
    COMMIT TRANSACTION getStuff
 END TRY
 BEGIN CATCH 
   ...
 END CATCH

Vì đây là giao dịch dựa trên, tôi nghĩ rằng phần còn lại của các kết nối cơ sở dữ liệu sẽ không bị ảnh hưởng bởi SERIALIZABLE.

Tôi có cần phải ngầm định đặt mức cô lập để đọc cam kết sau khi cam kết không? Điều này có ảnh hưởng xấu đến các kết nối khác giữa máy chủ ứng dụng và máy chủ cơ sở dữ liệu của tôi không?

Câu trả lời:


6

Lệnh là TRANSACTION ISOLATION LEVEL, không SERVER ISOLATION LEVEL. Nó chỉ thay đổi mức cô lập cho phạm vi giao dịch.


5

Không, bạn không cần phải thiết lập lại mức cô lập để đọc cam kết.

Từ sách trực tuyến .

Nếu bạn ban hành CẤP CẤP PHÂN TÍCH GIAO DỊCH trong một thủ tục hoặc trình kích hoạt được lưu trữ, khi đối tượng trả về điều khiển, mức cô lập được đặt lại về mức có hiệu lực khi đối tượng được gọi. Ví dụ: nếu bạn đặt REPEATABLE READ trong một đợt và đợt đó sẽ gọi một thủ tục được lưu trữ đặt mức cô lập thành SERIALIZABLE, cài đặt mức cô lập sẽ trở về REPEATABLE READ khi thủ tục được lưu trữ trả lại quyền điều khiển cho lô.


3

Lệnh mà bạn đã đăng chỉ cần chạy giao dịch trong SP với TRANSACTION ISOLATION LEVEL SERIALIZABLE. Các kết nối khác sẽ mặc định ở mức cô lập mặc định - đọc cam kết (trừ khi được chỉ định rõ ràng một mức cô lập khác).

Có một sê-ri xuất sắc của Paul White - Các mức cô lập máy chủ SQL: Một sê-ri sẽ giúp bạn hiểu sâu hơn về các mức cô lập khác nhau có nghĩa là gì và làm gì khi chúng được sử dụng.


-3

Một thuật toán khá mới tránh được hầu hết các nhược điểm của các phương pháp trước đây. Nó sử dụng một cách tiếp cận lạc quan, cho phép các giao dịch được tiến hành mà không bị chặn. Khi một giao dịch muốn cam kết, nó được kiểm tra và nó bị hủy bỏ nếu việc thực thi không được tuần tự hóa. Thêm chi tiết về tất cả các ứng dụng tại: http://writeulearn.com/relational-database-transilities/


Đây dường như không phải là một câu trả lời cho câu hỏi ....
RDFozz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.