Tôi có một giao dịch chạy dài (được gọi là, giả sử, T1) thực hiện một số thao tác xóa, cập nhật và chèn trên một bảng trong SQL Server 2008 R2. Đồng thời, một quy trình khác định kỳ chạy các câu lệnh chọn từ bảng này.
Trong cài đặt cách ly mặc định (Tôi đã đọc CAM KẾT?), T1 chặn mọi câu lệnh được chọn chạy cho đến khi giao dịch được thực hiện hoặc được khôi phục.
Những gì tôi muốn thấy là cho các câu lệnh được chọn hoạt động trên dữ liệu nhất quán ngay cả khi giao dịch đang được tiến hành. Tôi tin rằng sự cô lập SNAPSHOT có thể giúp ích, nhưng tôi không chắc liệu mình có đi đúng hướng hay không. Đây sẽ là mức cô lập tốt nhất cho ứng dụng này?
Thứ hai, tôi không có bất kỳ quyền kiểm soát nào đối với quá trình gọi các câu lệnh chọn, nhưng tôi có quyền kiểm soát ứng dụng .NET gọi T1. Bất kỳ thay đổi mức cô lập nào sẽ được yêu cầu trên cả hai câu lệnh chọn và T1, hoặc liệu có đủ để đánh dấu chỉ T1 là có mức cách ly khác nhau không?