Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
210,98 KB
Nội dung
Bài Transaction Lock Nhắc lại Nhắc lại kiến thức lập trình với T-SQL: n Khái niệm bó lệnh (Batch) tiến trình xử lý Batch n Biến n Các hàm SQL Server Thiết kế CSDL thực thi với SQL Server / Bài / 17 Mục tiêu n n n n n Nắm khái niệm giao dịch (transaction) Nắm khái niệm thuộc tính, phân loại, tính riêng biệt mức độ riêng biệt giao dịch Sử dụng khái niệm transaction để thực thi giao dịch SQL Transaction tập lệnh (batch) Nắm khái niệm khóa (lock) khóa chết (deadlock) Giải deadlock cách đặt mức độ ưu tiên cho transaction Thiết kế CSDL thực thi với SQL Server / Bài / 17 Giới thiệu n n Giao dịch (Transaction) đơn vị công việc Một transaction thực thành công hoàn toàn không thay đổi chút liệu Thiết kế CSDL thực thi với SQL Server / Bài / 17 Các thuộc tính Transaction n n n n Tính hoàn chỉnh (Atomicity) Tính quán (Consistency) Tính riêng biệt (Isolation) Tín bền vững (Durability) Thiết kế CSDL thực thi với SQL Server / Bài / 17 Phân loại Transaction n n n Giao dịch tường minh (Explicit transaction) Giao dịch ngầm định (Implicit transaction) Giao dịch xác nhận (Commit transaction) Thiết kế CSDL thực thi với SQL Server / Bài / 17 Transaction Isolation Isolation Levels n n n n Read Uncommitted Read Committed Repeatable read Serializable Thiết kế CSDL thực thi với SQL Server / Bài / 17 Sử dụng Transaction Log n n n n Nhật ký giao dịch (Transaction log) File riêng biệt (hoặc lưu vùng đĩa riêng) database server lưu trữ dấu vết thực thao tác Bằng cách lưu trữ dấu vết thực têp nhật ký (log), database server dễ dàng khôi phục lại liệu gặp cố Transaction log đảm bảo tính hoàn chỉnh tính bền vững SQL Server viết tất thay đổi CSDL xuống transaction log, transaction bắt đầu chưa chạy xong, phục hồi lại tất thay đổi từ file log Thiết kế CSDL thực thi với SQL Server / Bài / 17 Transaction với T-SQL n n n n BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION Thiết kế CSDL thực thi với SQL Server / Bài / 17 Locks n n n n Khóa (Lock) sinh để giới hạn quyền truy nhập môi trường đa người dùng Microsoft SQL Server 2000 sử dụng lock để đảm bảo tính toàn vẹn transaction tính thống database Nếu lock không sử dụng, liệu bên CSDL bị sai logíc, query chạy đưa kết không mong đợi Bản chất lock việc người muốn truy nhập riêng vào bảng, server lock bảng lại cho riêng người Thiết kế CSDL thực thi với SQL Server / Bài / 10 17 Phân loại Locks SQL Server n n n n n Pessimistic Lock Optimistic Lock Shared Locks Exclusive Locks Update Locks Thiết kế CSDL thực thi với SQL Server / Bài / 11 17 Deadlock n n n Một deadlock xảy có người dùng (hoặc phiên làm việc) đặt khóa đối tượng riêng, user muốn đặt khóa đối tượng user Mỗi user phài đợi người giải phóng khóa họ để đặt khóa SQL Server tự động nhận deadlock giải cách chọn ứng dụng bắt phải giải phóng khóa, cho ứng dụng lại chạy tiếp Cách tốt để tránh deadlock tránh Một cách để tránh không chạy transaction đồng thời Thiết kế CSDL thực thi với SQL Server / Bài / 12 17 Giải Deadlock n n SET DEADLOCK_PRIORITY SET LOCK_TIMEOUT Thiết kế CSDL thực thi với SQL Server / Bài / 13 17 Tóm tắt n n n n Quá trình truy nhập thay đổi nội dung CSDL gọi giao dịch (transaction) Một transaction thao tác đọc lẫn ghi Khi transaction thực nhiều user chạy đồng thời truy nhập lẫn đối tượng CSDL Các thuộc tính Transaction là: n Atomicity n Consistency n Isolation n Durability Các thuộc tính gọi thuộc tính ACID Thiết kế CSDL thực thi với SQL Server / Bài / 14 17 Tóm tắt (tiếp)… n n Các transaction phân loại sau: n Explicit transaction n Implicit transaction n Commit transaction Chuẩn ANSI SQL quy định mức độ chạy riêng biệt transaction Các mức độ cách chạy transaction với mức độ riêng biệt liệu Các mức độ sau: n Read Uncommitted n Read Committed n Repeatable read n Serializable Thiết kế CSDL thực thi với SQL Server / Bài / 15 17 Tóm tắt (tiếp)… n n n Transaction log phần quan trọng để bảo vệ liẹu Bằng cách ghi lại vết thao tác log, database server dễ dàng khôi phục lại liệu gặp cố Transact-SQL sử dụng câu lệnh sau để quản lý transaction: n BEGIN TRANSACTION n COMMIT TRANSACTION n ROLLBACK TRANSACTION n SAVE TRANSACTION Lock sử dụng để giới hạn truy nhập liệu môi trường đa người dùng SQL Server tự động lock tài nguyên record, field, file, để ngăn cản thao tác đồng thời liệu Thiết kế CSDL thực thi với SQL Server / Bài / 16 17 Tóm tắt (tiếp)… n n Các kiểu Lock: n Pessimistic Locks n Optimistic locks n Shared Locks n Exclusive Locks n Update Locks Deadlock xẩy có user (hoặc phiên làm việc) lock đối tượng riêng, user muốn lock đối tượng user Mỗi user phải đợi người giải phóng lock họ để lock Thiết kế CSDL thực thi với SQL Server / Bài / 17 17 [...]... Server / Bài 3 / 15 trong 17 Tóm tắt (tiếp)… n n n Transaction log là một phần quan trọng để bảo vệ dữ liẹu Bằng cách ghi lại vết các thao tác trong log, database server dễ dàng khôi phục lại dữ liệu khi gặp sự cố Transact-SQL sử dụng các câu lệnh sau để quản lý transaction: n BEGIN TRANSACTION n COMMIT TRANSACTION n ROLLBACK TRANSACTION n SAVE TRANSACTION Lock được sử dụng để giới hạn truy nhập dữ liệu. .. thi với SQL Server / Bài 3 / 12 trong 17 Giải quyết Deadlock n n SET DEADLOCK_PRIORITY SET LOCK_TIMEOUT Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 13 trong 17 Tóm tắt n n n n Quá trình truy nhập và thay đổi nội dung CSDL được gọi là giao dịch (transaction) Một transaction có thể thao tác cả đọc lẫn ghi Khi transaction được thực hiện bởi nhiều user có thể sẽ chạy đồng thời và truy nhập lẫn các... thuộc tính ACID Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 14 trong 17 Tóm tắt (tiếp)… n n Các transaction có thể phân loại như sau: n Explicit transaction n Implicit transaction n Commit transaction Chuẩn ANSI SQL quy định 4 mức độ chạy riêng biệt của transaction Các mức độ này chỉ ra cách chạy transaction với mức độ riêng biệt của dữ liệu Các mức độ như sau: n Read Uncommitted n Read Committed... được sử dụng để giới hạn truy nhập dữ liệu trong môi trường đa người dùng SQL Server tự động lock các tài nguyên record, field, hoặc file, để ngăn cản các thao tác đồng thời trên dữ liệu Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 16 trong 17 Tóm tắt (tiếp)… n n Các kiểu của Lock: n Pessimistic Locks n Optimistic locks n Shared Locks n Exclusive Locks n Update Locks Deadlock xẩy ra khi có 2 user...Phân loại các Locks trong SQL Server n n n n n Pessimistic Lock Optimistic Lock Shared Locks Exclusive Locks Update Locks Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 11 trong 17 Deadlock n n n Một deadlock xảy ra khi có 2 người dùng (hoặc 2 phiên làm việc) đã đặt khóa trên 2 đối tượng riêng, và mỗi user muốn đặt khóa trên đối tượng của user kia Mỗi user đều... làm việc) đã lock 2 đối tượng riêng, và mỗi user muốn lock đối tượng của user kia Mỗi user đều phải đợi người kia giải phóng lock của họ ra để mình có thể lock Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 17 trong 17