Tôi nghĩ rằng nó ổn trong một số trường hợp, miễn là bạn chấp nhận hậu quả và không có lựa chọn nào khác.
Đối với các tùy chọn khác, tôi sẽ hướng mọi người tới việc sử dụng Đọc cách ly Snapshot (RCSI) cho các ứng dụng mới hoặc SNAPSHOT ISOLATION (SI) cho các ứng dụng cũ hơn, nơi bạn không thể dễ dàng kiểm tra toàn bộ cơ sở mã cho các điều kiện chạy đua với RCSI.
Tuy nhiên, những thứ đó có thể không phù hợp. Bạn có thể cần dành thêm thời gian yêu thương và chăm sóc tempdb và đảm bảo không ai rời khỏi giao dịch mở khiến cửa hàng phiên bản (và tempdb) phát triển và lấp đầy đĩa.
Nếu bạn không có DBA hoặc ai đó có nhiệm vụ giám sát và quản lý Máy chủ SQL của bạn, các tùy chọn đó có thể rất nguy hiểm. Tổng quát hơn, không phải ai cũng có toàn quyền kiểm soát mã đến máy chủ của mình, nơi họ có thể thay đổi chuỗi kết nối hoặc mã để yêu cầu SI cho các truy vấn có vấn đề.
Ngoài ra, hầu hết mọi người không gặp vấn đề về khóa với toàn bộ ứng dụng của họ . Họ có vấn đề với những thứ như báo cáo về dữ liệu OLTP. Nếu bạn có thể chấp nhận sự đánh đổi của NOLOCK / RU để đổi lấy những báo cáo không bị chặn bởi các nhà văn, hãy thực hiện nó.
Chỉ cần chắc chắn rằng bạn hiểu điều đó có nghĩa là gì. Điều đó không có nghĩa là truy vấn của bạn không có bất kỳ khóa nào, điều đó có nghĩa là nó không tôn trọng các khóa được lấy bởi các truy vấn khác.
Và tất nhiên, nếu vấn đề của bạn là khóa nhà văn / nhà văn, tùy chọn duy nhất sẽ giúp là SI, nhưng sẽ cần một lượng công việc đáng kinh ngạc của nhà phát triển để thực hiện đúng cách xử lý lỗi, v.v.