SlideShare a Scribd company logo
11
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
22
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Kiểm soát và giảm thiểu xung đột
hoạt động xử lý cơ sở dữ liệu
1.Tại sao phát sinh vấn đề tranh chấp dữ liệu?
2.Các cấp độ cô lập trong SQL Server 2005
3.Hướng dẫn sử dụng các cấp độ cô lập trong
SQL Server 2005
33
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Giới thiệu
• Trong các ƯD nhiều người dùng, tại một thời
điểm có nhiều người dùng cùng truy cập và cập
nhật dữ liệu giống nhau
• Dẫn đến việc tranh chấp dữ liệu và người phát
triển ƯD phải đề ra cách giải quyết tranh chấp
• Để giảm thiểu mức độ xung đột một trong
những cách giải quyết là sử dụng Transaction
• MS SQL Server 2005 đã hỗ trợ thêm hai cấp độ
cô lập mới (ngoài những cấp độ đã hỗ trợ trước)
• Các cấp độ cô lập mới này nhằm làm giảm thiểu
thời gian khóa các mẩu tin
44
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
1. Tại sao có tranh chấp dữ liệu?
• Các tranh chấp dữ liệu sẽ phát sinh khi cùng
lúc có nhiều người dùng đọc và cập nhật cùng dữ
liệu giống nhau
• Sử dụng một trong các kỹ thuật sau để quản lý
việc nhiều người dùng cùng cập nhật:
 Pessimistic concurrency
 Optimistic concurrency
 “Last in wins”
55
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Pessimistic concurrency
• Khóa ngay tại thời điểm đọc
 Ví dụ: khi user A đọc một mẩu tin thì database engine
lập tức khóa ngay mẩu tin này
 Các user khác không thể cập nhật được mà phải chờ
 Khi user A kết thúc cập nhật thì database engine mới
mở khóa và các user khác mới có thể cập nhật được
66
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Pessimistic concurrency
• Đặc điểm
 Bảo đảm tại một thời điểm chỉ cho phép có một cập nhật
 Thích hợp với các ƯD có dữ liệu quan trọng cần thay
đổi tập trung. Ví dụ các ƯD cho phép đặt chổ
 Thời gian chiếm giữ càng ngắn càng tốt
 Không thích hợp với mô hình disconnect vì các kết nối
được duy trì đủ để đọc hoặc cập nhật  database engine
không thể khóa dữ liệu trong thời gian dài được
77
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Optimistic concurrency
• Khóa tại thời điểm ghi
 Ví dụ: khi các user A và B cùng đọc một mẩu tin thì
database engine không khóa mẩu tin này. Nhưng:
 Giả sử user A sửa và ghi thành công (trước user B)
 Sau đó thì đến user B ghi, database engine kiểm tra và
phát hiện mẩu tin đã bị sửa trước đó  user B ghi không
thành công (First in wins)
88
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Optimistic concurrency
• Đặc điểm
 Tại một thời điểm có thể có nhiều người dùng cập nhật
 Thích hợp với các ƯD có dữ liệu ít thay đổi tập trung
 Không hao tốn chi phí cho việc khóa dữ liệu
 Thích hợp với mô hình disconnect vì người dùng có thể
làm việc lâu dài với dữ liệu đã cache và sau khi kết thúc
làm việc thì cập nhật lại CSDL
 ADO.NET cho phép chọn lựa “Last in wins” hoặc “First in
wins”
 Mặc định là “First in wins”
99
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa Optimistic – First in wins
• User A cập nhật dữ liệu
• User B cũng cập nhật dữ liệu
• User A ghi trước và thành công
• User B ghi sau và bị lỗi
1010
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa Optimistic – Last in wins
• User A cập nhật dữ liệu
• User B cũng cập nhật dữ liệu
• User A ghi trước và thành công
• User B ghi sau và cũng thành công (dữ liệu
user A thay đổi có thể bị mất)
1111
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
2. Các cấp độ cô lập (isolation level)
• Khi tạo Transaction có thể xác định cấp độ cô
lập để xác lập ảnh hưởng giữa các Transaction
• Các Transaction cùng truy xuất dữ liệu giống
nhau tại cùng thời điểm có thể gây ra các lỗi dị
biệt như:
• Dirty read: đọc dữ liệu chưa được Commit
• Non-repeatable read: đọc không nhất quán
• Phantom read: đọc không bình thường
1212
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Lỗi Dirty read
• Transaction thứ nhất (T1) đang cập nhật nhưng
chưa Commit
• T2 có thể đọc thấy dữ liệu chưa được Commit
của T1
1313
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Lỗi Non-repeatable read
• T1 đang đọc dữ liệu đã được Commit
• T2 có thể cập nhật dữ liệu này
• T1 đọc lại và thấy có sự thay đổi
1414
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Lỗi Phantom read
• T1 đang đọc dữ liệu đã được Commit và dữ liệu
được đọc theo điều kiện
• T2 có thể cập nhật dữ liệu liên quan đến điều
kiện (mà T2 đang đọc)
• T1 đọc lại và thấy có sự thay đổi
1515
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Isolation Levels Available in SQL
Server 2005
1616
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Read Uncommited
• Là cấp độ cô lập thấp nhất trong giao tác
• Các thao tác đọc không yêu cầu khóa dữ liệu 
có thể đọc thấy dữ liệu đang bị thay đổi trong các
giao tác khác
• Read Uncommited chỉ bảo đảm dữ liệu đọc
không bị hỏng vật lý
1717
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa Read Uncommited
• User A cập nhật dữ liệu nhưng chưa kết thúc
• User B xem dữ liệu và thấy dirty read
• User B không cập nhật dữ liệu được
1818
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Read Commited
• Là cấp độ cô lập mặc định trong SQL Server
2005
• Các thao tác đọc sẽ bị treo (dead lock) khi dữ
liệu đang bị thay đổi bởi các giao tác khác
• Khắc phục dị biệt Dirty Read
1919
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa Read Commited
• User A đang cập nhật dữ liệu và chưa kết thúc
• User B không được xem dữ liệu (giải quyết
được dirty read)  phải chờ user A kết thúc mới
được xem
2020
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Repeatable Read
• Giao tác sử dụng cấp độ cô lập này sẽ khóa các
dữ liệu mà nó đang truy vấn
• Các thao tác khác sẽ không cập nhật được dữ
liệu đang bị khóa (dead lock)
• Khắc phục dị biệt Dirty Read và Repeatable
Read
2121
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Serializable
• Được xem là mức cô lập cao nhất
• Giao tác sử dụng cấp độ cô lập này sẽ khóa các
dữ liệu mà nó đang làm việc (có thể khóa toàn bộ
table)
• Khắc phục dị biệt Dirty Read, Repeatable Read
và Phantom Read
2222
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Hai cấp độ cô lập mới
• Read Commited with snapshots: sử dụng row
versioning và Optimistic
• Snapshots: giải quyết được các lỗi dị biệt
2323
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Các tác nhân ảnh hưởng đến việc chọn cấp độ
cô lập
 Data Integrity: ràng buộc dữ liệu  các trường hợp lỗi
dị biệt
 Concurrency Conflicts: đụng độ giữa các user
 Performance Overhead: chi phí thực hiện
2424
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Read Uncommited
 ƯD không yêu cầu dữ liệu đọc được phải chính xác
tuyệt đối
 Thao tác dữ liệu phải kết thúc càng nhanh càng tốt
2525
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Read Commited with Locking
 ƯD không yêu cầu việc truy cập dữ liệu phải diễn ra
trong một thời gian dài. Và khi có yêu cầu đọc thì dữ liệu
đọc là phải chính xác tuyệt đối
 Thích hợp với việc truy cập dữ liệu tuần tự
2626
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Read Commited with Snapshots
 ƯD có yêu cầu việc truy cập dữ liệu sẽ diễn ra trong một
thời gian dài
 Dữ liệu truy cập nhất quán kể từ khi bắt đầu đọc
2727
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Repeatable Read
 ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn
bảo đảm tính nhất quán. Có thể sau khi xem, tính toán thì
quyết định cập nhật
 Khi xem và tính toán dữ liệu kết thúc thì các giao tác
khác mới được cập nhật dữ liệu
2828
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Snapshot
 ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn
bảo đảm tính nhất quán. Có thể sau khi xem, tính toán thì
không quyết định cập nhật
 Các giao tác khác vẫn được xem và cập nhật dữ liệu
2929
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Hướng dẫn sử dụng các cấp độ
cô lập
• Cấp độ cô lập Serializable
 ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn
bảo đảm tính nhất quán
 Các giao tác khác không đuợc cập nhật dữ liệu
3030
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Thực hành 1
• Cài đặt cấp độ cô lập Read Commited with
Snapshots
3131
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Thực hành 2
• Cài đặt cấp độ cô lập Snapshots

More Related Content

Viewers also liked

Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
MasterCode.vn
 
c
cc
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
MasterCode.vn
 
Odata consuming-services-slides
Odata consuming-services-slidesOdata consuming-services-slides
Odata consuming-services-slidesMasterCode.vn
 
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
MasterCode.vn
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
MasterCode.vn
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
MasterCode.vn
 
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL serverBài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
MasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vnPdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
MasterCode.vn
 
Bài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệuBài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệu
MasterCode.vn
 
2 seo-fundamentals-in depth keyword research (part 2)-slides
2 seo-fundamentals-in depth keyword research (part 2)-slides2 seo-fundamentals-in depth keyword research (part 2)-slides
2 seo-fundamentals-in depth keyword research (part 2)-slides
MasterCode.vn
 
4 introduction-php-mvc-cakephp-m4-controllers-slides
4 introduction-php-mvc-cakephp-m4-controllers-slides4 introduction-php-mvc-cakephp-m4-controllers-slides
4 introduction-php-mvc-cakephp-m4-controllers-slidesMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
MasterCode.vn
 
2. owin and katana aspdotnet-mvc5-slides
2. owin and katana aspdotnet-mvc5-slides2. owin and katana aspdotnet-mvc5-slides
2. owin and katana aspdotnet-mvc5-slides
MasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
MasterCode.vn
 
Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tin
MasterCode.vn
 

Viewers also liked (20)

Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
c
cc
c
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Odata consuming-services-slides
Odata consuming-services-slidesOdata consuming-services-slides
Odata consuming-services-slides
 
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
Pdf bai 5 làm việc với báo cáo nâng cao-slide 05-quan tri csdl voi access-mas...
 
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
Pdf bai 2 làm việc với biểu mẫu cơ bản-slide 02-quan tri csdl voi access-mast...
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL serverBài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
Bài 4.2 - SQL (STRUCTURED QUERY LANGUAGE) - SQL server
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vnPdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
Pdf bai tap_nen_tang_lap_trinh_-_c#-mastercode.vn
 
Bài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệuBài 6: Mô hình hóa dữ liệu
Bài 6: Mô hình hóa dữ liệu
 
2 seo-fundamentals-in depth keyword research (part 2)-slides
2 seo-fundamentals-in depth keyword research (part 2)-slides2 seo-fundamentals-in depth keyword research (part 2)-slides
2 seo-fundamentals-in depth keyword research (part 2)-slides
 
4 introduction-php-mvc-cakephp-m4-controllers-slides
4 introduction-php-mvc-cakephp-m4-controllers-slides4 introduction-php-mvc-cakephp-m4-controllers-slides
4 introduction-php-mvc-cakephp-m4-controllers-slides
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
2. owin and katana aspdotnet-mvc5-slides
2. owin and katana aspdotnet-mvc5-slides2. owin and katana aspdotnet-mvc5-slides
2. owin and katana aspdotnet-mvc5-slides
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tin
 

Similar to BÀI 8: Kiểm soát và giảm thiểu hoạt động xử lý cơ sở dữ liệu

Phương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application ServerPhương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application Server
GMO-Z.com Vietnam Lab Center
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Nhật Nguyễn Khắc
 
How to write good code
How to write good code How to write good code
How to write good code
Minh Hoang
 
6-Kiểm tra mạng, World wide web.pptx
6-Kiểm tra mạng, World wide web.pptx6-Kiểm tra mạng, World wide web.pptx
6-Kiểm tra mạng, World wide web.pptx
HQucMinh
 
#2 Hanoi Magento Meetup - Part 3: Panel discussion
#2 Hanoi Magento Meetup - Part 3: Panel discussion#2 Hanoi Magento Meetup - Part 3: Panel discussion
#2 Hanoi Magento Meetup - Part 3: Panel discussion
Hanoi MagentoMeetup
 
Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...
Thành Thư Thái
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
phamhuuai
 
Distributed Transaction in Microservice
Distributed Transaction in MicroserviceDistributed Transaction in Microservice
Distributed Transaction in Microservice
Nghia Minh
 
Lab 5 read only domain controller
Lab 5 read only domain controller  Lab 5 read only domain controller
Lab 5 read only domain controller tinhban269
 
Lab 5 read only domain controller
Lab 5 read only domain controller  Lab 5 read only domain controller
Lab 5 read only domain controller Pham Viet Dung
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
Trần Đức Anh
 
DDD - DuyLV - VINID - 17.07.2019
DDD - DuyLV - VINID - 17.07.2019DDD - DuyLV - VINID - 17.07.2019
DDD - DuyLV - VINID - 17.07.2019
Lê Văn Duy
 
Asp tiengviet
Asp tiengvietAsp tiengviet
Asp tiengviet
Quoc Nguyen
 
Asp tiengviet
Asp tiengvietAsp tiengviet
Asp tiengviet
quanvn
 
Bài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptxBài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptx
duongchausky
 

Similar to BÀI 8: Kiểm soát và giảm thiểu hoạt động xử lý cơ sở dữ liệu (20)

Phương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application ServerPhương pháp và chiến lược đối ứng tải trong Web Application Server
Phương pháp và chiến lược đối ứng tải trong Web Application Server
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
 
How to write good code
How to write good code How to write good code
How to write good code
 
6-Kiểm tra mạng, World wide web.pptx
6-Kiểm tra mạng, World wide web.pptx6-Kiểm tra mạng, World wide web.pptx
6-Kiểm tra mạng, World wide web.pptx
 
#2 Hanoi Magento Meetup - Part 3: Panel discussion
#2 Hanoi Magento Meetup - Part 3: Panel discussion#2 Hanoi Magento Meetup - Part 3: Panel discussion
#2 Hanoi Magento Meetup - Part 3: Panel discussion
 
Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...
 
Dsd04 sta
Dsd04 staDsd04 sta
Dsd04 sta
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
 
Distributed Transaction in Microservice
Distributed Transaction in MicroserviceDistributed Transaction in Microservice
Distributed Transaction in Microservice
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 
Lab 5 read only domain controller
Lab 5 read only domain controller  Lab 5 read only domain controller
Lab 5 read only domain controller
 
Lab 5 read only domain controller
Lab 5 read only domain controller  Lab 5 read only domain controller
Lab 5 read only domain controller
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
 
access
accessaccess
access
 
DDD - DuyLV - VINID - 17.07.2019
DDD - DuyLV - VINID - 17.07.2019DDD - DuyLV - VINID - 17.07.2019
DDD - DuyLV - VINID - 17.07.2019
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
Asp tiengviet
Asp tiengvietAsp tiengviet
Asp tiengviet
 
Asp tiengviet
Asp tiengvietAsp tiengviet
Asp tiengviet
 
Bài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptxBài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptx
 
Web1012 slide 8
Web1012   slide 8Web1012   slide 8
Web1012 slide 8
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
MasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
MasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
MasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
MasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
MasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
MasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
MasterCode.vn
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
MasterCode.vn
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
MasterCode.vn
 
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
MasterCode.vn
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
MasterCode.vn
 
Pdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vnPdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vn
MasterCode.vn
 
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vnPdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
MasterCode.vn
 

More from MasterCode.vn (19)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
 
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
Pdf bai 4 làm việc với báo cáo cơ bản-slide 04-quan tri csdl voi access-maste...
 
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
Pdf bai 3 làm việc với biểu mẫu nâng cao-slide 03-quan tri csdl voi access-ma...
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
 
Pdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vnPdf tim hieuc#vaungdung-mastercode.vn
Pdf tim hieuc#vaungdung-mastercode.vn
 
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vnPdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
Pdf bai tap_lap_trinh_win_form - mon_1-mastercode.vn
 

BÀI 8: Kiểm soát và giảm thiểu hoạt động xử lý cơ sở dữ liệu

  • 1. 11 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM
  • 2. 22 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Kiểm soát và giảm thiểu xung đột hoạt động xử lý cơ sở dữ liệu 1.Tại sao phát sinh vấn đề tranh chấp dữ liệu? 2.Các cấp độ cô lập trong SQL Server 2005 3.Hướng dẫn sử dụng các cấp độ cô lập trong SQL Server 2005
  • 3. 33 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Giới thiệu • Trong các ƯD nhiều người dùng, tại một thời điểm có nhiều người dùng cùng truy cập và cập nhật dữ liệu giống nhau • Dẫn đến việc tranh chấp dữ liệu và người phát triển ƯD phải đề ra cách giải quyết tranh chấp • Để giảm thiểu mức độ xung đột một trong những cách giải quyết là sử dụng Transaction • MS SQL Server 2005 đã hỗ trợ thêm hai cấp độ cô lập mới (ngoài những cấp độ đã hỗ trợ trước) • Các cấp độ cô lập mới này nhằm làm giảm thiểu thời gian khóa các mẩu tin
  • 4. 44 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 1. Tại sao có tranh chấp dữ liệu? • Các tranh chấp dữ liệu sẽ phát sinh khi cùng lúc có nhiều người dùng đọc và cập nhật cùng dữ liệu giống nhau • Sử dụng một trong các kỹ thuật sau để quản lý việc nhiều người dùng cùng cập nhật:  Pessimistic concurrency  Optimistic concurrency  “Last in wins”
  • 5. 55 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Pessimistic concurrency • Khóa ngay tại thời điểm đọc  Ví dụ: khi user A đọc một mẩu tin thì database engine lập tức khóa ngay mẩu tin này  Các user khác không thể cập nhật được mà phải chờ  Khi user A kết thúc cập nhật thì database engine mới mở khóa và các user khác mới có thể cập nhật được
  • 6. 66 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Pessimistic concurrency • Đặc điểm  Bảo đảm tại một thời điểm chỉ cho phép có một cập nhật  Thích hợp với các ƯD có dữ liệu quan trọng cần thay đổi tập trung. Ví dụ các ƯD cho phép đặt chổ  Thời gian chiếm giữ càng ngắn càng tốt  Không thích hợp với mô hình disconnect vì các kết nối được duy trì đủ để đọc hoặc cập nhật  database engine không thể khóa dữ liệu trong thời gian dài được
  • 7. 77 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Optimistic concurrency • Khóa tại thời điểm ghi  Ví dụ: khi các user A và B cùng đọc một mẩu tin thì database engine không khóa mẩu tin này. Nhưng:  Giả sử user A sửa và ghi thành công (trước user B)  Sau đó thì đến user B ghi, database engine kiểm tra và phát hiện mẩu tin đã bị sửa trước đó  user B ghi không thành công (First in wins)
  • 8. 88 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Optimistic concurrency • Đặc điểm  Tại một thời điểm có thể có nhiều người dùng cập nhật  Thích hợp với các ƯD có dữ liệu ít thay đổi tập trung  Không hao tốn chi phí cho việc khóa dữ liệu  Thích hợp với mô hình disconnect vì người dùng có thể làm việc lâu dài với dữ liệu đã cache và sau khi kết thúc làm việc thì cập nhật lại CSDL  ADO.NET cho phép chọn lựa “Last in wins” hoặc “First in wins”  Mặc định là “First in wins”
  • 9. 99 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Minh họa Optimistic – First in wins • User A cập nhật dữ liệu • User B cũng cập nhật dữ liệu • User A ghi trước và thành công • User B ghi sau và bị lỗi
  • 10. 1010 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Minh họa Optimistic – Last in wins • User A cập nhật dữ liệu • User B cũng cập nhật dữ liệu • User A ghi trước và thành công • User B ghi sau và cũng thành công (dữ liệu user A thay đổi có thể bị mất)
  • 11. 1111 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 2. Các cấp độ cô lập (isolation level) • Khi tạo Transaction có thể xác định cấp độ cô lập để xác lập ảnh hưởng giữa các Transaction • Các Transaction cùng truy xuất dữ liệu giống nhau tại cùng thời điểm có thể gây ra các lỗi dị biệt như: • Dirty read: đọc dữ liệu chưa được Commit • Non-repeatable read: đọc không nhất quán • Phantom read: đọc không bình thường
  • 12. 1212 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Lỗi Dirty read • Transaction thứ nhất (T1) đang cập nhật nhưng chưa Commit • T2 có thể đọc thấy dữ liệu chưa được Commit của T1
  • 13. 1313 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Lỗi Non-repeatable read • T1 đang đọc dữ liệu đã được Commit • T2 có thể cập nhật dữ liệu này • T1 đọc lại và thấy có sự thay đổi
  • 14. 1414 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Lỗi Phantom read • T1 đang đọc dữ liệu đã được Commit và dữ liệu được đọc theo điều kiện • T2 có thể cập nhật dữ liệu liên quan đến điều kiện (mà T2 đang đọc) • T1 đọc lại và thấy có sự thay đổi
  • 15. 1515 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Isolation Levels Available in SQL Server 2005
  • 16. 1616 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Read Uncommited • Là cấp độ cô lập thấp nhất trong giao tác • Các thao tác đọc không yêu cầu khóa dữ liệu  có thể đọc thấy dữ liệu đang bị thay đổi trong các giao tác khác • Read Uncommited chỉ bảo đảm dữ liệu đọc không bị hỏng vật lý
  • 17. 1717 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Minh họa Read Uncommited • User A cập nhật dữ liệu nhưng chưa kết thúc • User B xem dữ liệu và thấy dirty read • User B không cập nhật dữ liệu được
  • 18. 1818 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Read Commited • Là cấp độ cô lập mặc định trong SQL Server 2005 • Các thao tác đọc sẽ bị treo (dead lock) khi dữ liệu đang bị thay đổi bởi các giao tác khác • Khắc phục dị biệt Dirty Read
  • 19. 1919 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Minh họa Read Commited • User A đang cập nhật dữ liệu và chưa kết thúc • User B không được xem dữ liệu (giải quyết được dirty read)  phải chờ user A kết thúc mới được xem
  • 20. 2020 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Repeatable Read • Giao tác sử dụng cấp độ cô lập này sẽ khóa các dữ liệu mà nó đang truy vấn • Các thao tác khác sẽ không cập nhật được dữ liệu đang bị khóa (dead lock) • Khắc phục dị biệt Dirty Read và Repeatable Read
  • 21. 2121 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Serializable • Được xem là mức cô lập cao nhất • Giao tác sử dụng cấp độ cô lập này sẽ khóa các dữ liệu mà nó đang làm việc (có thể khóa toàn bộ table) • Khắc phục dị biệt Dirty Read, Repeatable Read và Phantom Read
  • 22. 2222 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Hai cấp độ cô lập mới • Read Commited with snapshots: sử dụng row versioning và Optimistic • Snapshots: giải quyết được các lỗi dị biệt
  • 23. 2323 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Các tác nhân ảnh hưởng đến việc chọn cấp độ cô lập  Data Integrity: ràng buộc dữ liệu  các trường hợp lỗi dị biệt  Concurrency Conflicts: đụng độ giữa các user  Performance Overhead: chi phí thực hiện
  • 24. 2424 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Read Uncommited  ƯD không yêu cầu dữ liệu đọc được phải chính xác tuyệt đối  Thao tác dữ liệu phải kết thúc càng nhanh càng tốt
  • 25. 2525 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Read Commited with Locking  ƯD không yêu cầu việc truy cập dữ liệu phải diễn ra trong một thời gian dài. Và khi có yêu cầu đọc thì dữ liệu đọc là phải chính xác tuyệt đối  Thích hợp với việc truy cập dữ liệu tuần tự
  • 26. 2626 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Read Commited with Snapshots  ƯD có yêu cầu việc truy cập dữ liệu sẽ diễn ra trong một thời gian dài  Dữ liệu truy cập nhất quán kể từ khi bắt đầu đọc
  • 27. 2727 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Repeatable Read  ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn bảo đảm tính nhất quán. Có thể sau khi xem, tính toán thì quyết định cập nhật  Khi xem và tính toán dữ liệu kết thúc thì các giao tác khác mới được cập nhật dữ liệu
  • 28. 2828 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Snapshot  ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn bảo đảm tính nhất quán. Có thể sau khi xem, tính toán thì không quyết định cập nhật  Các giao tác khác vẫn được xem và cập nhật dữ liệu
  • 29. 2929 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM 3. Hướng dẫn sử dụng các cấp độ cô lập • Cấp độ cô lập Serializable  ƯD có yêu cầu đọc dữ liệu để xem, tính toán và luôn bảo đảm tính nhất quán  Các giao tác khác không đuợc cập nhật dữ liệu
  • 30. 3030 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Thực hành 1 • Cài đặt cấp độ cô lập Read Commited with Snapshots
  • 31. 3131 HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO HocLapTrinhWeb.COM Thực hành 2 • Cài đặt cấp độ cô lập Snapshots

Editor's Notes

  1. 1. Minh họa với CSDL là MS Access using System.Data.OleDb; "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\QLSinhVien.mdb“ 2. Minh họa với CSDL là MS Excel using System.Data.Odbc; "Dsn=Excel Files;Dbq=C:\\SINH_VIEN.xls“ 3. Minh họa với CSDL là MS SQL Server using System.Data.SqlClient; "Server=(local);Database=AdventureWorks;Integrated Security=SSPI“ 4. Minh họa với CSDL là MS SQL Server Attach File using System.Data.SqlClient; "Data Source=(local);AttachDbFilename=C:\\QLSinhVien.mdf;Integrated Security=True"
  2. 1. Minh họa với CSDL là MS Access using System.Data.OleDb; "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\QLSinhVien.mdb“ 2. Minh họa với CSDL là MS Excel using System.Data.Odbc; "Dsn=Excel Files;Dbq=C:\\SINH_VIEN.xls“ 3. Minh họa với CSDL là MS SQL Server using System.Data.SqlClient; "Server=(local);Database=AdventureWorks;Integrated Security=SSPI“ 4. Minh họa với CSDL là MS SQL Server Attach File using System.Data.SqlClient; "Data Source=(local);AttachDbFilename=C:\\QLSinhVien.mdf;Integrated Security=True"
  3. 1. Minh họa với CSDL là MS Access using System.Data.OleDb; "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\QLSinhVien.mdb“ 2. Minh họa với CSDL là MS Excel using System.Data.Odbc; "Dsn=Excel Files;Dbq=C:\\SINH_VIEN.xls“ 3. Minh họa với CSDL là MS SQL Server using System.Data.SqlClient; "Server=(local);Database=AdventureWorks;Integrated Security=SSPI“ 4. Minh họa với CSDL là MS SQL Server Attach File using System.Data.SqlClient; "Data Source=(local);AttachDbFilename=C:\\QLSinhVien.mdf;Integrated Security=True"
  4. 1. Minh họa với CSDL là MS Access using System.Data.OleDb; "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\QLSinhVien.mdb“ 2. Minh họa với CSDL là MS Excel using System.Data.Odbc; "Dsn=Excel Files;Dbq=C:\\SINH_VIEN.xls“ 3. Minh họa với CSDL là MS SQL Server using System.Data.SqlClient; "Server=(local);Database=AdventureWorks;Integrated Security=SSPI“ 4. Minh họa với CSDL là MS SQL Server Attach File using System.Data.SqlClient; "Data Source=(local);AttachDbFilename=C:\\QLSinhVien.mdf;Integrated Security=True"