YOMEDIA
ADSENSE
Bài 3 Transaction và Lock
316
lượt xem 40
download
lượt xem 40
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
.Nhắc lại Nhắc lại kiến thức lập trình với TSQL: Khái niệm về bó lệnh (Batch) và tiến trình xử lý Batch, Biến
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 3 Transaction và Lock
- Bài 3 Transaction và Lock
- Nhắc lại Nhắc lại kiến thức lập trình với TSQL: Khái niệm về bó lệnh (Batch) và tiến trình xử lý Batch Biến Các hàm cơ bản của SQL Server Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 2 trong 17
- Mục tiêu Nắm được khái niệm giao dịch (transaction) Nắm được các khái niệm về thuộc tính, phân loại, tính riêng biệt và mức độ riêng biệt của giao dịch Sử dụng các khái niệm về transaction để thực thi giao dịch SQL Transaction và tập lệnh (batch) Nắm được các khái niệm khóa (lock) và khóa chết (deadlock) Giải quyết các deadlock bằng cách đặt mức độ ưu tiên cho các transaction Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 3 trong 17
- Giới thiệu Giao dịch (Transaction) là một đơn vị công việc Một transaction hoặc là sẽ thực hiện thành công hoàn toàn hoặc là sẽ không thay đổi một chút dữ liệu nào Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 4 trong 17
- Các thuộc tính Transaction Tính hoàn chỉnh (Atomicity) Tính nhất quán (Consistency) Tính riêng biệt (Isolation) Tín bền vững (Durability) Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 5 trong 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 và thực thi với SQL Server / Bài 3 / 6 trong 17
- Transaction Isolation và Isolation Levels Read Uncommitted Read Committed Repeatable read Serializable Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 7 trong 17
- Sử dụng Transaction Log Nhật ký giao dịch (Transaction log) là một File riêng biệt (hoặc lưu ở vùng đĩa riêng) ở trong database server nó lưu trữ dấu vết thực hiện của các thao tác Bằng cách lưu trữ dấu vết thực hiện trong têp nhật ký (log), database server dễ dàng khôi phục lại dữ liệu khi gặp sự cố Transaction log đảm bảo tính hoàn chỉnh và tính bền vững SQL Server viết tất cả các thay đổi trên CSDL xuống transaction log, vì vậy nếu transaction đã bắt đầu nhưng chưa chạy xong, chúng ta vẫn có thể phục hồi lại tất cả các thay đổi từ file log Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 8 trong 17
- Transaction với TSQL BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 9 trong 17
- Locks Khóa (Lock) được sinh ra để giới hạn quyền truy nhập trên 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 của transaction và tính thống nhất của database Nếu lock không được sử dụng, dữ liệu bên trong CSDL có thể bị sai về logíc, và các query chạy trên đó sẽ đưa ra các kết quả không mong đợi Bản chất của lock là việc một người muốn truy nhập riêng vào một bảng, vì vậy server sẽ lock bảng đó lại cho riêng người đó Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 10 trong 17
- Phân loại các Locks trong SQL Server 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 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 phài đợi người kia giải phóng khóa của họ ra để mình có thể đặt khóa. SQL Server tự động nhận ra deadlock và giải quyết bằng cách chọn một ứng dụng và bắt nó phải giải phóng khóa, trong khi đó vẫn cho ứng dụng còn lại chạy tiếp. Cách tốt nhất để tránh deadlock là tránh nó. Một cách để tránh nó là không chạy các transaction đồng thời. Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 12 trong 17
- Giải quyết Deadlock 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 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 đối tượng của CSDL. Các thuộc tính của Transaction là: Atomicity Consistency Isolation Durability Các thuộc tính trên còn được gọi là 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)… Các transaction có thể phân loại như sau: Explicit transaction Implicit transaction 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: Read Uncommitted Read Committed Repeatable read Serializable Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 15 trong 17
- Tóm tắt (tiếp)… 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ố. TransactSQL sử dụng các câu lệnh sau để quản lý transaction: BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION Lock đượ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)… Các kiểu của Lock: Pessimistic Locks Optimistic locks Shared Locks Exclusive Locks Update Locks Deadlock xẩy ra khi có 2 user (hoặc 2 phiên 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
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn