Câu trả lời:
SQL Server thường sử dụng một chiến lược khóa khác với Oracle. Chiến lược mặc định được sử dụng bởi SQL Server có nghĩa là việc chọn các hàng khiến các khóa đọc (trên các hàng, trang hoặc toàn bộ bảng) được đặt trên chúng *. Do đó, NOLOCK
đôi khi là một mệnh đề hữu ích - mặc dù lời khuyên chung là không bao giờ sử dụng nó, vì nó thay đổi ngữ nghĩa của các mức cô lập và có thể gây ra kết quả không nhất quán trong đầu ra của truy vấn.
* (Lưu ý: đó là mặc định. Nếu SNAPSHOT
cách ly được chọn, hành vi sẽ khác và người đọc không chặn người viết.)
Trong Oracle, một quá trình đọc sẽ không bao giờ chặn quá trình ghi. Sau đây là đoạn trích từ ' Khái niệm cơ sở dữ liệu Oracle 11g Phiên bản 2 '. Tôi khuyến khích bạn hãy xem nếu bạn quan tâm đến cách xử lý của Oracle.
Đồng thời dữ liệu và nhất quán
Tóm tắt hành vi khóa
Cơ sở dữ liệu duy trì một số loại khóa khác nhau, tùy thuộc vào hoạt động thu được khóa. Nói chung, cơ sở dữ liệu sử dụng hai loại khóa: khóa độc quyền và khóa chia sẻ. Chỉ có thể lấy một khóa độc quyền trên một tài nguyên như một hàng hoặc bảng, nhưng nhiều khóa chia sẻ có thể được lấy trên một tài nguyên.
Khóa ảnh hưởng đến sự tương tác của độc giả và nhà văn. Một người đọc là một truy vấn của một tài nguyên, trong khi một nhà văn là một tuyên bố sửa đổi một tài nguyên. Các quy tắc sau đây tóm tắt hành vi khóa của Cơ sở dữ liệu Oracle cho người đọc và người viết:
• Một hàng chỉ bị khóa khi được sửa đổi bởi một nhà văn.
Khi một câu lệnh cập nhật một hàng, giao dịch chỉ thu được khóa cho hàng này. Bằng cách khóa dữ liệu bảng ở cấp hàng, cơ sở dữ liệu sẽ giảm thiểu sự tranh chấp cho cùng một dữ liệu. Trong trường hợp bình thường 1, cơ sở dữ liệu không leo thang khóa hàng lên cấp khối hoặc bảng.
• Một nhà văn của một hàng chặn một nhà văn đồng thời của cùng một hàng.
Nếu một giao dịch đang sửa đổi một hàng, thì khóa hàng sẽ ngăn một giao dịch khác sửa đổi cùng một hàng.
• Một người đọc không bao giờ chặn một nhà văn.
Bởi vì một người đọc một hàng không khóa nó, một nhà văn có thể sửa đổi hàng này. Ngoại lệ duy nhất là một câu lệnh CHỌN ... ĐỂ CẬP NHẬT, đây là một loại câu lệnh CHỌN đặc biệt có chức năng khóa hàng mà nó đang đọc.
• Một nhà văn không bao giờ chặn người đọc.
Khi một hàng đang được thay đổi bởi một người viết, cơ sở dữ liệu sử dụng dữ liệu hoàn tác để cung cấp cho người đọc một cái nhìn nhất quán về hàng đó.