Chuong7 transaction

57 0 0
Chuong7   transaction

Đ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

Giao Tác Nội dung www.themegallery.com Giới thiệu Giao tác Điều khiển đồng thời Giới thiệu Ví dụ 1: TaiKhoan (MaTK, HoTen, SoDu) — Xét store procedure spRutTien ◦ Bước 1: Đọc số dư tài khoản ◦ Bước 2: Kiểm tra số dư tài khoản ◦ Bước 3: Nếu đủ tiền ◦ Bước 3.1: Cập nhật tài khoản với số dư ◦ Bước 3.2: Trả tiền máy ATM ◦ Bước 4: Nếu không đủ tiền kết thúc www.themegallery.com Giới thiệu Ví dụ 1: — Nhận xét ◦ Nếu bước 3.1 thực 3.2 bị lỗi è cập nhật mà không trả tiền ◦ Nếu bước 3.2 thực mà 3.1 bị lỗi è trả tiền mà không cập nhật tài khoản Ø Dữ liệu bị sai — Mong muốn ◦ Bước 3.1 3.2 phải thực hết không thực bước www.themegallery.com Giới thiệu Ví dụ 2: — Xét store procedure spChuyenTien ◦ Tham số @tk1, @tk2, @sotien ◦ Bước 1: Đọc số dư @tk1 è @sodu1 ◦ Bước 2: Cập nhật số dư tài khoản UPDATE TaiKhoan SET SoDu = @sodu1 - @sotien ◦ Bước 3: Đọc số dư tài khoản UPDATE TaiKhoan SET SoDu = @sodu2 + @sotien ◦ Bước 4: Thông báo thành công www.themegallery.com Giới thiệu Ví dụ 2: — Nhận xét ◦ Nếu bước thành công, bước bị lỗi è SoDu tài khỏan @tk1 bị trừ SoDu @tk2 không tăng lên Ø Bị lỗi — Mong muốn ◦ Bước bước phải thực hết khơng có bước thực www.themegallery.com Giới thiệu Ví dụ 3: DocGia(MaDG, HoTen, NgaySinh) NgLon(MaDG, SoNha, Dng, Phng, Quan) • Xét store procedure: spThemDGNguoiLon ◦ Bước 1: Xác định mã đọc giả ◦ Bước 2: Insert vào bảng DocGia ◦ Bước 3: Kiểm tra tuổi đọc giả ◦ Bước 4: Nếu không đủ tuổi thơng báo lỗi kết thúc ◦ Bước 5: Ngược lại Insert vào bảng NgLon www.themegallery.com Giới thiệu Ví dụ 3: — Nhận xét: ◦ Giả sử gọi spThemNguoiLon để thêm đọc giả mà nhỏ 18 tuổi Giải Có thêm vào bảng DocGia ??? Có thêm vào bảng NgLon Ø Dữ liệu bị saiKhai báo bước muốn có đặc — Mong muốn: điểm vào giao tác ◦ Bước bước phải thực hết, không thực bước hết www.themegallery.com Nội dung www.themegallery.com Giới thiệu Giao tác Điều khiển đồng thời Giao tác • Giao tác tập lệnh có truy xuất đến CSDL • Giao tác phải đảm bảo tính ACID Giao tác www.themegallery.com 10 Kỹ thuật khóa vGiáo tác T1 vGiáo tác T2 § Ghi đơn vị liệu § Ghi đơn vị liệu A Xin khóa X A B Xin khóa X B § Muốn ghi đơn vị § Muốn ghi đơn vị liệu B Muốn xin khóa liệu A Muốn xin X B??? khóa X A??? Phải chờ www.themegallery.com 43 Mức lập vRead Uncommitted § Đọc : Khơng phát S đọc khơng phải chờ đọc liệu § Giải : Khơng giải vấn đề xử lý đồng thời vRead Committed § Đây mức mặc định SQL § Đọc : Phát S đọc, giải phóng S sau đọc § Giải : Chỉ giải Dirty Read www.themegallery.com 44 Mức cô lập vRepeatable Read § Đọc : Phát S đọc giữ S đến transaction kết thúc § Giải : Giải Dirty Read Unrepeatable Read Không ngăn chặn lệnh insert liệu thỏa điều kiện thiết lập S khơng giải phantom vSerializable § Giống Repeatable Read, có ngăn chặn lệnh insert liệu thoả điều kiện thiết lập S Giải Dirty Read,Unrepeatable Read Phantom www.themegallery.com 45 Mức cô lập vRead Uncommitted vRead Committed : dirty read vRepeatable Read : dirty read unrepeatable read vSerializable : dirty Read, Unrepeatable Read Phantom ðChưa giải Lost update ðMức cô lập có tác dụng tồn giao tác đến gặp mức lập khác www.themegallery.com 46 Khóa câu lệnh vCấp độ khóa loại khóa khác gắn vào table câu lệnh from thao tác select vNgoài câu lệnh select, cấp độ khóa cịn gắn vào câu lệnh cập nhật, nhiên ta quan tâm câu select www.themegallery.com 47 Các cấp độ khóa STT Khóa Ý nghĩa ReadUncommitted Khơng thiết lập shared lock đọc / Nolock (tương tự mức cô lập Read Uncommitted) ReadCommitted -Đây chế độ mặc định (tương tự readcommitted) -Chỉ đọc liệu commit -Thiết lập shared lock đơn vị liệu đọc mở clock đọc xong RepeatableRead Thiết lập shared lock đọc giữ shared lock đến hết giao tác www.themegallery.com 48 Các cấp độ khóa STT Khóa Serializable / Holdlock Updlock XLock Readpast www.themegallery.com Ý nghĩa -Thiết lập shared lock đọc, giữ lock đến hết giao tác -Khơng cho insert dịng thỏa điều kiện thiết lập khóa -Dùng updatelock thay cho shared lock -Chỉ sử dụng câu select -Uplock giữ đến hết giao tác Chỉ định dùng khóa độc quyền -Chỉ khóa dịng liệu thao tác -Áp dụng cho câu lệnh select -Chỉ dùng với READ COMMITTED REPEATABLE READ 49 Các cấp độ khóa STT Khóa RowLock TabLock 10 TabLockX Ý nghĩa Chỉ đặt khóa dịng cần thao tác -Khóa tồn dòng bảng thao tác -Các thao tác (Insert / Update / Delete) thực bảng Xlock + TabLock ð 1, 2, 3, 5, 6, có ý nghĩa dùng câu select ð 1, 2, 3, 5, 6, kết hợp với (khóa theo kiểu key-range) 8, (chỉ đơn vị cần khóa) www.themegallery.com 50 Thiết lập cấp độ khóa Select … From {Tab1 Alias1 with (Lock_mode [,…n]} [,…n]) Where … Ví dụ : Select SV.HoVaTen, K.TenKhoa From SinhVien SV with (ReadCommitted), Khoa K with (Updlock) Where SV.Khoa = K.Ma www.themegallery.com 51 Deadlock Conversion deadlock www.themegallery.com 52 Conversion deadlock Transaction Select (A) Transaction Select (A) Insert/ Update/Delete (A) Commit www.themegallery.com Insert/ Update/Delete (A) Commit 53 Deadlock Cycle deadlock www.themegallery.com 54 Cycle deadlock Transaction Insert/ Update/Delete (A) Transaction Insert/ Update/Delete (B) Insert/ Update/Delete (B) Commit www.themegallery.com Insert/ Update/Delete (A) Commit 55 Deadlock v Khi dead lock xảy § SQL Server chọn transaction gây dead lock để hủy bỏ, transaction cịn lại tiếp tục thực hồn tất § Transaction bị chọn hủy transaction mà SQL ước tính chi phí cho phần việc làm transaction cịn lại www.themegallery.com 56 Thank You! 57

Ngày đăng: 06/04/2023, 09:30

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

  • Đang cập nhật ...

Tài liệu liên quan