Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài. Tuy nhiên công nghệ ngày càng phát triển, với sự xuất hiện của MariaDB và Percona, là 2 nhánh biến thể của MySQL với nhiều tính năng vượt trội. Bài viết này sẽ giới thiệu và MariaDB Spider Engine dành cho nhưng ứng dụng có lượng dự liệu lớn hoặc muốn mở rộng hơn nữa.
Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài. Tuy nhiên công nghệ ngày càng phát triển, với sự xuất hiện của MariaDB và Percona, là 2 nhánh biến thể của MySQL với nhiều tính năng vượt trội. Bài viết này sẽ giới thiệu và MariaDB Spider Engine dành cho nhưng ứng dụng có lượng dự liệu lớn hoặc muốn mở rộng hơn nữa.
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
Lập trình sáng tạo bao gồm việc sáng tạo. Khoa học máy tính và các ngành liên quan tới tính toán đã từ lâu đƣợc giới thiệu tới những ngƣời trẻ tuổi một cách rời rạc – quá nhấn mạnh kĩ thuật so với khả năng sáng tạo. Lập trình sáng tạo giúp cho sự phát triển của cá nhân đối với tính toán trở nên tốt hơn, bằng cách hỗ trợ vẽ vời dựa trên sáng tạo, tƣởng tƣợng, và sở thích.
Introduction ...................................................................................12
Code Examples .......................................................................................................................15
Chapter 1: Using Dynamic Management Objects .......................16
Compatibility Views, Catalog Views, and DMOs ..............................................................17
DMO Security and Permissions ...........................................................................................21
Performance Tuning with DMOs ........................................................................................22
Navigating through the DMOs .....................................................................................24
Point-in-time versus cumulative data ..........................................................................26
Beware of the watcher effect .........................................................................................29
Using DMOs with other performance tools ...............................................................29
Summary ..................................................................................................................................32
Chapter 2: Connections, Sessions and Requests ........................33
Sysprocesses versus DMOs ...................................................................................................35
Connections and Sessions ....................................................................................................37
sys.dm_exec_connections ..............................................................................................38
sys.dm_exec_sessions .....................................................................................................40
Who is connected? ..........................................................................................................42
Who is connected by SSMS? ..........................................................................................44
Session-level settings .......................................................................................................45
Logins with more than one session..............................................................................47
Identify sessions with context switching ....................................................................48
Identify inactive sessions ...............................................................................................48
Identify idle sessions with orphaned transactions .....................................................51
Requests ...................................................................................................................................52
Overview of sys.dm_exec_requests ..............................................................................53
Overview of sys.dm_exec_sql_text .......................
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
Giới thiệu về biểu mẫu. Tìm hiểu cấu trúc chung của biểu mẫu. Tìm hiểu các dạng thể hiện của biểu mẫu. Tìm hiểu các cách tạo biểu mẫu MS Access. Tìm hiểu các điều kiện của biểu mãu. Tìm hiểu về nút lệnh
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhắc lại các khái niệm cơ bản về phần cứng và phần mềm. Giới thiệu về các thành phần của máy tính. Nắm được vị trí sắp xếp của các thành phần bên trong case, các loại case khác nhau. Nắm được các thông số về nguồn điện được sử dụng để vận hành hệ thống máy tính. Ước lượng công suất của hệ thống và chọn bộ cấp nguồn và thiết bị lưu điện cho phù hợp. Nhận biết và xử lý một số vấn đề thường gặp liên quan đến nguồn điện
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
Meta Tag là thẻ dùng để cung cấp các thông tin về website một cách tóm gọn đối với các trình duyệt lẫn người dùng hay bot từ các search engine. Mọi người hay nghe Meta Keyword, Meta Description, Meta Page title,..
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhận biết được đặc điểm và thông số kỹ thuật của các CPU dùng cho máy tính cá nhân Thông hiểu cách lựa chọn CPU cho hệ thống Thông hiểu cách lắp mới và thay thế CPU Thông hiểu các phương pháp tản nhiệt cho CPU Thông hiểu các loại RAM khác nhau và nguyên lý hoạt động của chúng. Thông hiểu các vấn đề cần thiết khi nâng cấp RAM
Tìm hiểu mô hình thực thể liên kết (Entity Relationship Modeling) và các thành phần của mô hình
Tìm hiểu các mô hình mô tả tiến trình (sơ đồ tiến trình)
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
Google Webmaster Tools • Google Analytics phân tích traffic • SEO Power Suite , web auditor đ onpage • Ahrefs, phân tích t khóa và Link • OpenSiteExplorer phân tích link profile • Firexfox Extensions: SEO Doctor cho onpage, NoDofollow • SEOMoz Toolbar đ check PA và DA •Free Monitor for Google đ check RANK •SEOMOZ pro check onpage
Giới thiệu các phương pháp và chiến lược đối ứng tải trong Web Application Server.
- WEB Server Scaleout
- Chiến lược Caching
- Tách DB (Horizontal Sharding / Vertical Sharding)
- Linux Kernel Parameters
Code Refactoring (Tái cấu trúc mã nguồn) là những kỹ thuật sắp xếp lại mã nguồn để chúng trở nên tốt hơn mà không làm ảnh hưởng tới hành vi của hệ thống đối với bên ngoài. Có rất nhiều kỹ thuật refactoring khác nhau, mỗi kỹ thuật đôi khi chỉ làm thay đổi một chút nho nhỏ mã nguồn, nhưng những thay đổi nhỏ đó được tích luỹ dần theo thời gian thì tạo nên một ảnh hưởng rất lớn, giúp cho hệ thống của chúng ta trở nên tốt hơn.
“Tốt” hơn nghĩa là thế nào? Nghĩa là chúng sẽ “clean” hơn và “SOLID” hơn.
Refactoring là một trong các nhóm kỹ thuật có liên quan đến nhau và ảnh hưởng đến nhau, bao gồm kiểm thử tự động, TDD, clean code, design pattern… và đều tuân thủ các nguyên lý quan trọng về thiết kế phần mềm.
Chủ đề Live Stream lần này về Code Refactoring sẽ đề cập đến ý nghĩa của refactoring, các kỹ thuật refactoring thông dụng và ứng dụng của chúng trong thực tế. Phiên demo sẽ có các hướng dẫn về việc sử dụng các công cụ để thực hiện các kỹ thuật refactoring và giải thích cụ thể lợi ích của chúng. Nếu bạn đã nghe về Clean Code, SOLID, Design Pattern thì phiên Live Stream lần này là một dịp không thể bỏ qua để hoàn thiện hơn nhóm các kỹ thuật quan trọng này.
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
Lập trình sáng tạo bao gồm việc sáng tạo. Khoa học máy tính và các ngành liên quan tới tính toán đã từ lâu đƣợc giới thiệu tới những ngƣời trẻ tuổi một cách rời rạc – quá nhấn mạnh kĩ thuật so với khả năng sáng tạo. Lập trình sáng tạo giúp cho sự phát triển của cá nhân đối với tính toán trở nên tốt hơn, bằng cách hỗ trợ vẽ vời dựa trên sáng tạo, tƣởng tƣợng, và sở thích.
Introduction ...................................................................................12
Code Examples .......................................................................................................................15
Chapter 1: Using Dynamic Management Objects .......................16
Compatibility Views, Catalog Views, and DMOs ..............................................................17
DMO Security and Permissions ...........................................................................................21
Performance Tuning with DMOs ........................................................................................22
Navigating through the DMOs .....................................................................................24
Point-in-time versus cumulative data ..........................................................................26
Beware of the watcher effect .........................................................................................29
Using DMOs with other performance tools ...............................................................29
Summary ..................................................................................................................................32
Chapter 2: Connections, Sessions and Requests ........................33
Sysprocesses versus DMOs ...................................................................................................35
Connections and Sessions ....................................................................................................37
sys.dm_exec_connections ..............................................................................................38
sys.dm_exec_sessions .....................................................................................................40
Who is connected? ..........................................................................................................42
Who is connected by SSMS? ..........................................................................................44
Session-level settings .......................................................................................................45
Logins with more than one session..............................................................................47
Identify sessions with context switching ....................................................................48
Identify inactive sessions ...............................................................................................48
Identify idle sessions with orphaned transactions .....................................................51
Requests ...................................................................................................................................52
Overview of sys.dm_exec_requests ..............................................................................53
Overview of sys.dm_exec_sql_text .......................
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
Giới thiệu về biểu mẫu. Tìm hiểu cấu trúc chung của biểu mẫu. Tìm hiểu các dạng thể hiện của biểu mẫu. Tìm hiểu các cách tạo biểu mẫu MS Access. Tìm hiểu các điều kiện của biểu mãu. Tìm hiểu về nút lệnh
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhắc lại các khái niệm cơ bản về phần cứng và phần mềm. Giới thiệu về các thành phần của máy tính. Nắm được vị trí sắp xếp của các thành phần bên trong case, các loại case khác nhau. Nắm được các thông số về nguồn điện được sử dụng để vận hành hệ thống máy tính. Ước lượng công suất của hệ thống và chọn bộ cấp nguồn và thiết bị lưu điện cho phù hợp. Nhận biết và xử lý một số vấn đề thường gặp liên quan đến nguồn điện
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
Meta Tag là thẻ dùng để cung cấp các thông tin về website một cách tóm gọn đối với các trình duyệt lẫn người dùng hay bot từ các search engine. Mọi người hay nghe Meta Keyword, Meta Description, Meta Page title,..
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Nhận biết được đặc điểm và thông số kỹ thuật của các CPU dùng cho máy tính cá nhân Thông hiểu cách lựa chọn CPU cho hệ thống Thông hiểu cách lắp mới và thay thế CPU Thông hiểu các phương pháp tản nhiệt cho CPU Thông hiểu các loại RAM khác nhau và nguyên lý hoạt động của chúng. Thông hiểu các vấn đề cần thiết khi nâng cấp RAM
Tìm hiểu mô hình thực thể liên kết (Entity Relationship Modeling) và các thành phần của mô hình
Tìm hiểu các mô hình mô tả tiến trình (sơ đồ tiến trình)
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
Google Webmaster Tools • Google Analytics phân tích traffic • SEO Power Suite , web auditor đ onpage • Ahrefs, phân tích t khóa và Link • OpenSiteExplorer phân tích link profile • Firexfox Extensions: SEO Doctor cho onpage, NoDofollow • SEOMoz Toolbar đ check PA và DA •Free Monitor for Google đ check RANK •SEOMOZ pro check onpage
Giới thiệu các phương pháp và chiến lược đối ứng tải trong Web Application Server.
- WEB Server Scaleout
- Chiến lược Caching
- Tách DB (Horizontal Sharding / Vertical Sharding)
- Linux Kernel Parameters
Code Refactoring (Tái cấu trúc mã nguồn) là những kỹ thuật sắp xếp lại mã nguồn để chúng trở nên tốt hơn mà không làm ảnh hưởng tới hành vi của hệ thống đối với bên ngoài. Có rất nhiều kỹ thuật refactoring khác nhau, mỗi kỹ thuật đôi khi chỉ làm thay đổi một chút nho nhỏ mã nguồn, nhưng những thay đổi nhỏ đó được tích luỹ dần theo thời gian thì tạo nên một ảnh hưởng rất lớn, giúp cho hệ thống của chúng ta trở nên tốt hơn.
“Tốt” hơn nghĩa là thế nào? Nghĩa là chúng sẽ “clean” hơn và “SOLID” hơn.
Refactoring là một trong các nhóm kỹ thuật có liên quan đến nhau và ảnh hưởng đến nhau, bao gồm kiểm thử tự động, TDD, clean code, design pattern… và đều tuân thủ các nguyên lý quan trọng về thiết kế phần mềm.
Chủ đề Live Stream lần này về Code Refactoring sẽ đề cập đến ý nghĩa của refactoring, các kỹ thuật refactoring thông dụng và ứng dụng của chúng trong thực tế. Phiên demo sẽ có các hướng dẫn về việc sử dụng các công cụ để thực hiện các kỹ thuật refactoring và giải thích cụ thể lợi ích của chúng. Nếu bạn đã nghe về Clean Code, SOLID, Design Pattern thì phiên Live Stream lần này là một dịp không thể bỏ qua để hoàn thiện hơn nhóm các kỹ thuật quan trọng này.
Vietnamese version translated from this famous slide
http://www.slideshare.net/nbykmatsui/ss-55961899?utm_content=buffer50ae1&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer
Bài thuyết trình môn học Hệ Điều Hành.pptxduongchausky
Hệ điều hành là một môn học cung cấp kiến thức cơ bản về quản lý tài nguyên của máy tính. Dưới đây là một số nội dung chính của môn học hệ điều hành:
Định nghĩa và tính chất của hệ điều hành:
Định nghĩa và tính chất cơ bản của hệ điều hành.
Lịch sử phát triển hệ điều hành.
Phân loại hệ điều hành.
Quản lý tiến trình:
Tiến trình và luồng (process/thread).
Đồng bộ hóa tiến trình.
Lập lịch CPU.
Tắc nghẽn và xử lý tắc nghẽn:
Khái niệm tắc nghẽn.
Điều kiện xảy ra tắc nghẽn.
Các phương pháp xử lý tắc nghẽn.
Quản lý bộ nhớ:
Khái niệm chung về quản lý bộ nhớ.
Các chiến lược quản lý bộ nhớ thực.
Quản lý bộ nhớ ảo.
Quản lý tập tin:
Hệ thống quản lý tập tin.
Thư mục và cách cài đặt hệ thống file và thư mục.
Quản lý nhập xuất:
Hệ thống vào ra.
Xử lý vào ra.
Quản lý truy cập đĩa.
Môn học hệ điều hành giúp bạn hiểu nguyên tắc hoạt động của hệ điều hành và cung cấp kiến thức cơ bản để xây dựng và quản lý các hệ điều hành cụ thể. Nếu bạn muốn tìm hiểu thêm, có thể xem các tài liệu chi tiết về môn học này.
Dù bạn là ai, dù mục đích học tiếng Anh của bạn đơn thuần chỉ là có tấm bằng trong tay để xin việc hay cao siêu hơn là có thể nói thông viết thạo thì việc nằm lòng các ngữ pháp tiếng Anh ẩn chứa sức mạnh ghê gớm dưới đây cũng là bước cơ bản giúp bạn master tiếng Anh
Scalability and optimization are constant
concerns for the developer and operations
manager. The Performance Zone focuses on
all things performance, covering everything
from database optimization to garbage
collection, tool and technique comparisons,
and tweaks to keep your code as effcient
as possible.
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
Các doanh nghiệp cần luôn có mặt trên online để khách hàng dễ dàng thấy họ mỗi khi tìm kiếm. "Mùa vụ" hay giai đoạn mà lượng
tìm kiếm về sản phẩm dịch vụ của doanh nghiệp trên Google bỗng gia tăng chính là thời điểm tuyệt vời để tận dụng.Các doanh nghiệp
có thể tối đa hoá doanh thu trong thời kì cao điểm này bằng cách lên chiến lược quảng cáo "luôn online" gắn liền với mục tiêu mùa.
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
Cơ chế hoạt động Google Tên miền Cấu trúc website Meta Tag (Title, Description, H1-H6, ALT...) URL thân thiện, Sitemap, robots.txt Keyword Density Tốc độ tải trang
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Những chú ý đặc biệt khi hỗ trợ người dùng máy tính xách tay Cài đặt, cấu hình, tối ưu, sửa chữa các thiết bị ngoại vi hay dùng với máy tính xách tay Nâng cấp, thay thế các thiết bị máy tính xách tay Nguyên lý hoạt động của máy in Cài đặt máy in
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Tìm hiểu các quy trình xử lý đảm bảo an toàn Tìm hiểu phương pháp bảo trì phòng ngừa cho máy tính cá nhân Tìm hiểu cách phát hiện và xử lý sự cố máy tính
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Đưa ra kế hoạch bảo trì phòng ngừa Rà soát các thiết lập Windows trọng yếu Làm sạch ổ cứng Chống phân mảnh ổ đĩa Kiểm tra lỗi ổ cứng Rà soát các chương trình khởi động và dịch vụ Tiến hành các thủ tục sao lưu Lập kế hoạch khắc phục thảm họa Sao lưu dữ liệu người dùng / toàn bộ ổ cứng Tối ưu Windows Các công cụ tối ưu: Task Manager, MSConfig, Services Console, Computer Management Cải thiện hiệu năng Windows Đưa ra kế hoạch bảo trì phòng ngừa Rà soát các thiết lập Windows trọng yếu Làm sạch ổ cứng Chống phân mảnh ổ đĩa Kiểm tra lỗi ổ cứng Rà soát các chương trình khởi động và dịch vụ Tiến hành các thủ tục sao lưu Lập kế hoạch khắc phục thảm họa Sao lưu dữ liệu người dùng / toàn bộ ổ cứng Tối ưu Windows Các công cụ tối ưu: Task Manager, MSConfig, Services Console, Computer Management Cải thiện hiệu năng Windows
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
Biết được các công nghệ chế tạo ổ cứng Hiểu được cấu tạo ổ cứng Phân biệt rõ các chuẩn giao tiếp giữa hệ thống với ổ cứng Thông hiểu cách tổ chức lưu trữ dữ liệu trong ổ cứng Giải quyết các vấn đề liên quan đến ổ cứng Biết được các công nghệ chế tạo ổ cứng Hiểu được cấu tạo ổ cứng Phân biệt rõ các chuẩn giao tiếp giữa hệ thống với ổ cứng Thông hiểu cách tổ chức lưu trữ dữ liệu trong ổ cứng Giải quyết các vấn đề liên quan đến ổ cứng
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
Tìm hiểu các cách tạo truy vấn. Thực hiện truy vấn trên nhiều bảng. Tìm hiểu các khái niệm trong biểu thức tiêu chuẩn. Tìm hiểu cách xây dựng biểu thức tiểu chuẩn
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
Tìm hiểu về báo cáo report trong MS Access. Tìm hiểu các thành phần chính của báo cáo. Tìm hiểu các dạng báo cáo. Tìm hiểu các định dạng xuất báo cáo. Tìm hiểu các quy tắc thiết kế báo cáo hiệu quả cho doanh nghiệp
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
Tìm hiểu các kỹ thuật để thiết kế biểu mẫu hiệu quả và nhập dữ liệu chính xác. Tìm hiểu một số hướng dẫn thiết kế biểu mẫu cho ứng dụng doanh nghiệp. Tìm hiểu các cách tạo biểu mẫu nâng cao và đặc biệt
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. 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"
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"
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"
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"