Khi một DML thông thường được thực thi (UPDATE/DELETE/INSERT, MERGE và SELECT ... FOR UPDATE) oracle có được 2 khóa. Khóa mức hàng (TX) - Điều này có được một khóa trên hàng cụ thể đang được chạm và bất kỳ giao dịch nào khác cố sửa đổi cùng một hàng bị chặn, cho đến khi hàng đã sở hữu nó kết thúc. Khóa mức bảng (TM) - Khi khóa hàng (TX) thu được một khóa bảng bổ sung cũng được lấy để ngăn chặn bất kỳ hoạt động DDL nào xảy ra trong khi tiến hành DML.
Điều quan trọng là ở chế độ nào mà Khóa bảng thu được. Khóa chia sẻ hàng (RS), còn được gọi là khóa bảng con (SS), cho biết giao dịch giữ khóa trên bàn có các hàng bị khóa trong bảng và dự định cập nhật chúng. Khóa SS là chế độ khóa bàn ít hạn chế nhất, cung cấp mức đồng thời cao nhất cho một bảng.
Một khóa độc quyền hàng (RX), còn được gọi là khóa bảng phân giải phụ (SX), cho biết giao dịch giữ khóa đã cập nhật hàng hoặc phát hành SELECT ... FOR UPDATE. Khóa SX cho phép các giao dịch khác truy vấn, chèn, cập nhật, xóa hoặc khóa các hàng đồng thời trong cùng một bảng. Vì vậy, SX khóa cho phép nhiều giao dịch để có được đồng thời SX và SS khóa cho cùng một bảng.
Khóa bảng chia sẻ (S) được tổ chức bởi một giao dịch cho phép các giao dịch khác truy vấn bảng (không sử dụng SELECT ... FOR UPDATE) nhưng chỉ cho phép cập nhật nếu một giao dịch duy nhất giữ khóa bảng chia sẻ. Nhiều giao dịch có thể giữ một khóa bảng chia sẻ đồng thời, do đó, giữ khóa này là không đủ để đảm bảo rằng một giao dịch có thể sửa đổi bảng.
Khóa bảng độc quyền chia sẻ hàng (SRX), còn được gọi là khóa bảng chia sẻ cấp dưới (SSX), hạn chế hơn khóa bảng chia sẻ. Chỉ có một giao dịch tại một thời điểm có thể có được một khóa SSX trên một bảng nhất định. Khóa SSX được tổ chức bởi một giao dịch cho phép các giao dịch khác truy vấn bảng (ngoại trừ SELECT ... FOR UPDATE) nhưng không cập nhật bảng.
Khóa bàn độc quyền (X) là chế độ khóa bàn phím hạn chế nhất, cho phép giao dịch giữ quyền truy cập ghi độc quyền bằng khóa vào bảng. Chỉ một giao dịch mới có thể nhận được khóa X cho một bảng.
Nguồn
2014-04-28 09:12:21
liên kết bị hỏng! –
@Gab 是 好人 - cảm ơn vì đã cho tôi biết. Tôi đã thay thế chúng bằng các liên kết đến phiên bản tài liệu mới nhất. – APC