Tìm hiểu về Transaction và Lock

17 1.6K 7
Tìm hiểu về Transaction và Lock

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tìm hiểu về Transaction và Lock - Bài giảng

Bài Transaction Lock Nhắc lại Nhắc lại kiến thức lập trình với T-SQL:  Khái niệm bó lệnh (Batch) tiến trình xử lý Batch  Biế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ắ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   Giao dịch (Transaction) đơn vị công việc Một transaction thực thành công hồn tồ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     Tính hồ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    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     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     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 hồ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     BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION Thiết kế CSDL thực thi với SQL Server / Bài / 17 Locks     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 tồ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      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    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 cịn 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   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     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à:  Atomicity  Consistency  Isolation  Durability Các thuộc tính cịn 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)…   Các transaction phân loại sau:  Explicit transaction  Implicit transaction  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:  Read Uncommitted  Read Committed  Repeatable read  Serializable Thiết kế CSDL thực thi với SQL Server / Bài / 15 17 Tóm tắt (tiếp)…    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:  BEGIN TRANSACTION  COMMIT TRANSACTION  ROLLBACK TRANSACTION  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)…   Các kiểu Lock:  Pessimistic Locks  Optimistic locks  Shared Locks  Exclusive Locks  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 ...  Các kiểu Lock:  Pessimistic Locks  Optimistic locks  Shared Locks  Exclusive Locks  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... Bài / 17 Transaction với T-SQL     BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION Thiết kế CSDL thực thi với SQL Server / Bài / 17 Locks     Khóa (Lock) sinh... 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      Pessimistic Lock Optimistic Lock Shared Locks Exclusive

Ngày đăng: 07/09/2012, 09:27

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan