Khi một kết nối được đóng lại và trở về nhóm, mức cô lập từ câu lệnh CẤP PHÂN TÍCH LẬP TỨC GIAO DỊCH cuối cùng được giữ lại?


8

Bài viết trực tuyến MSDN " Snapshot Isolation in SQL Server " nêu rõ:

  • "Mức cô lập có phạm vi toàn kết nối và sau khi được đặt cho kết nối với câu lệnh THIẾT LẬP CẤP PHÂN TÍCH GIAO DỊCH, nó vẫn có hiệu lực cho đến khi kết nối được đóng hoặc mức cô lập khác được đặt. Khi kết nối được đóng và trở về nhóm , mức cô lập từ câu lệnh CẤP CẤP PHÂN TÍCH GIAO DỊCH TẬP TRUNG cuối cùng được giữ lại . Các kết nối tiếp theo sử dụng lại kết nối được sử dụng mức cô lập có hiệu lực tại thời điểm kết nối được gộp lại "

Không phải đó là đoạn tự mâu thuẫn ("cho đến khi" so với "giữ lại")?

Sau đó, nếu "mức cô lập từ câu lệnh CẤP CẤP PHÂN TÍCH GIAO DỊCH TẬP TRUNG cuối cùng được giữ lại " sau khi đóng kết nối và đưa nó trở lại một nhóm, thì nên hiểu như thế nào:

  • mức cô lập mặc định sẽ có giá trị tùy ý (các kết nối khác nhau trong nhóm sẽ có các mức cô lập khác nhau và giá trị của nó sẽ phụ thuộc vào kết nối được mở lại)?
  • hoặc tất cả các giá trị mặc định trên tất cả các kết nối trong nhóm bạn sẽ được thay đổi thành cuối cùng? Nhưng một lần nữa khá xa lạ trước khi ra tay?

Câu trả lời:


14

Một kết nối từ nhóm sẽ có mức cô lập được đặt bởi khách hàng cuối cùng để sử dụng kết nối đó. Vâng, nó thực sự là đáng sợ.

Điểm dài và ngắn của nó là nếu bạn thay đổi mức cô lập của kết nối, bạn phải đặt lại rõ ràng READ COMMITTEDtrước khi đóng. Tốt hơn là tuyên bố rõ ràng mức cô lập cần thiết của bạn khi bắt đầu bất kỳ lô nào, để đảm bảo mã của bạn không bị ảnh hưởng bởi người khác bị cẩu thả và đưa nó về mặc định vào cuối.

Hành vi này, trong khi gây trở ngại, rõ ràng là do thiết kế .


Chưa bao giờ thấy những thứ "phải rõ ràng" và "Tốt hơn là rõ ràng" trong các bài báo, sách, blog, tài liệu, v.v.
Fulproof 18/12/13

5

Không phải đó là đoạn tự mâu thuẫn ("cho đến khi" so với "giữ lại")?

Không phải với tôi, nhưng tôi có thể thấy có nhiều cách khác để đọc nó. Nếu bạn muốn tài liệu được cập nhật để làm cho nó rõ ràng hơn, nơi thích hợp để yêu cầu tài liệu này là trên Microsoft Connect . Người dân ở đây không duy trì tài liệu của Microsoft.

mức cô lập mặc định sẽ có giá trị tùy ý (các kết nối khác nhau trong nhóm sẽ có các mức cô lập khác nhau và giá trị của nó sẽ phụ thuộc vào kết nối được mở lại)?

Nếu bạn đang sử dụng lại kết nối được gộp, thì có, mức cô lập "tồn tại trước" là mức có hiệu lực khi kết nối gộp được đóng lần cuối. Thực hành tốt nhất là đặt rõ ràng mức cô lập cần thiết khi kết nối.

hoặc tất cả các giá trị mặc định trên tất cả các kết nối trong nhóm sẽ được thay đổi thành cuối cùng? Nhưng một lần nữa khá xa lạ trước khi ra tay?

Không.


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.