1. Trang chủ
  2. » Công Nghệ Thông Tin

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

17 1,6K 7
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 119,5 KB

Nội dung

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

Trang 1

Bài 3

Transaction và Lock

Trang 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

Trang 3

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 3 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

Trang 4

Giới thiệu

 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

 Giao dịch (Transaction) là một đơn vị công

việc

Trang 5

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 5 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)

Trang 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)

Trang 7

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 7 trong 17

Transaction Isolation và

Isolation Levels

 Repeatable read

 Serializable

Trang 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

Trang 9

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 9 trong 17

Transaction với T-SQL

Trang 10

 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

Trang 11

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 11 trong 17

Phân loại các Locks trong

SQL Server

 Pessimistic Lock

 Optimistic Lock

 Shared Locks

 Exclusive Locks

 Update Locks

Trang 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

Trang 13

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 13 trong 17

Giải quyết Deadlock

Trang 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

Trang 15

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 15 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

Trang 16

Tóm tắt (tiếp)…

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ố

Lock được sử dụng để giới hạn truy nhập dữ liệu trong môi

Trang 17

Thiết kế CSDL và thực thi với SQL Server / Bài 3 / 17 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

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

w