SQL Server: Mức cách ly SNAPSHOT là gì?

2022-07-04 22:03:19

Mức cô lập SNAPSHOT được xây dựng dựa trên MVCC - Kiến trúc điều khiển đồng thời đa vũ trụ.
Đây cũng là một trong những cấp độ Cách ly yêu thích của tôi vì tôi thích khái niệm lập phiên bản hàng.

Trước khi thảo luận thêm về SNAPSHOT,
You guys should know about, What is MVCC?

RDBMS khác như: MySQL InnoDB Engine và PostgreSQL dựa trên Kiến trúc MVCC.

Cấp độ Cách ly SNAPSHOT không chặn bất kỳ giao dịch nào của bạn để chèn, cập nhật hoặc chọn dữ liệu vì nó đang quản lý và lưu trữ các phiên bản khác nhau của dữ liệu vào TempDB.

Khi bạn đang đọc dữ liệu trong một giao dịch và trong khi giao dịch khác đang cập nhật cùng một dữ liệu và nó sẽ giữ phiên bản cũ của dữ liệu vào TempDB để bạn vẫn có thể đọc dữ liệu đã cam kết cũ.

Khi bạn đọc cùng một dữ liệu vào lần tiếp theo, bạn luôn nhận được phiên bản mới của dữ liệu từ bộ nhớ chính và nó sẽ xóa phiên bản cũ của dữ liệu khỏi TempDB.
Người đọc của bạn không chặn bất kỳ người viết nào khác và người viết của bạn không chặn bất kỳ người đọc nào khác.

Bạn không thể bật SNAPSHOT Cấp cách ly ở cấp câu lệnh.
Bạn phải bật ở cấp cơ sở dữ liệu và sau khi bật tất cả các giao dịch cơ sở dữ liệu của bạn sẽ thực hiện theo kiểu MVCC.

Tập lệnh để kích hoạt mức cách ly SNAPSHOT:

Tập lệnh để vô hiệu hóa mức cô lập SNAPSHOT:

Xem thêm:


Chia sẻ: