intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 3 Transaction và Lock

Chia sẻ: Hoang Minh Minh | Ngày: | Loại File: PPT | Số trang:17

316
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  T­SQL: Khái niệm về bó lệnh (Batch) và tiến trình xử  lý Batch, Biến

Chủ đề:
Lưu

Nội dung Text: Bài 3 Transaction và Lock

  1. Bài 3 Transaction và Lock
  2. Nhắc lại Nhắc lại kiến thức lập trình với  T­SQL:  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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. Transaction với T­SQL  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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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ố. Transact­SQL 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
  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

 

Đồng bộ tài khoản
7=>1