« Home « Kết quả tìm kiếm

Tối ưu Cơ sở dữ liệu – Các kĩ thuật và ứng dụng.


Tóm tắt Xem thử

- Vũ Minh Tâm TỐI ƯU CƠ SỞ DỮ LIỆU – CÁC KĨ THUẬT VÀ ỨNG DỤNG Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KĨ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC : TS.
- 3 DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT CSDL: Cơ sở dữ liệu.
- 4 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1: Mối liên hệ giữa các thành phần liên quan đến tệp dữ liệu Hình 2: Bộ nhớ đệm lưu trữ trong hệ Quản trị CSDL SQL Server Hình 3: Các thành phần chuyên biệt của một hệ Quản trị CSDL quan hệ…….……………14 Hình 4: Các mức cô lập của hệ Quản trị CSDL Hình 5: Bộ định giá truy vấn Hình 6: Phân mảnh ngoài trên hệ Quản trị CSDL SQL Server Hình 7: Thứ tự vật lý và logic của đơn vị dữ liệu khi thêm dữ liệu mới MỤC LỤC LỜI CAM ĐOAN.
- Hiệu năng Hệ Cơ sở dữ liệu.
- CẤU TRÚC VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ QUẢN TRỊ CSDL.
- Cấu trúc và các thành phần chính.
- Nguyên lý hoạt động của hệ Quản trị CSDL.
- Những yếu tố, thành phần ảnh hưởng đến hiệu năng Hệ CSDL.
- Trình quản lý mô tả dữ liệu.
- Bộ nhớ đệm truy vấn.
- Hiệu năng Hệ Cơ sở dữ liệu Hiện nay đất nước chúng ta đang từng bước phát triển, hội nhập vào nền kinh tế thế giới kéo theo sự bùng nổ về công nghệ thông tin và truyền thông.
- Trong thời gian những năm 90, làm việc với những dữ liệu lên đến megabyte có thể coi là những dữ liệu lớn nhưng ngày nay ta có thể gặp những hệ thống mà dữ liệu lên đến hàng trăm, hàng nghìn gigabyte trong các lĩnh vực lớn như viễn thông, ngân hàng, chứng khoán, bảo hiểm.
- Yêu cầu đặt ra với những hệ thống có dữ liệu lớn nói trên là phải triển khai một hệ Quản trị cơ sở dữ liệu (CSDL) đủ mạnh để quản lý và khai thác dữ liệu.
- Hệ Quản trị này bắt buộc phải có tính an toàn và bảo mật cao, đáp ứng được đa số những nhu cầu đề ra như: Tốc độ xử lý tốt, hoạt động ổn định, tính phổ biến rộng và tuân theo các chuẩn chung của hệ Quản trị CSDL… Tuy nhiên sau khi lựa chọn hệ Quản trị CSDL, việc xây dựng và phát triển ứng dụng dựa trên hệ Quản trị đó chỉ là bước đầu tiên.
- Trong thời đại công nghệ thông tin bùng nổ như hiện nay, việc một hệ thống lớn mà hiệu năng không tốt sẽ gây ra nhiều hậu quả không mong muốn như thời gian xử lý giao dịch chậm, xuất hiện nghẽn hệ thống khi lượng truy cập cao, khách hàng không hài lòng về chất lượng dịch vụ… Tất cả những hậu quả trên sẽ dẫn đến những hệ lụy không mong muốn cho doanh nghiệp.
- Lựa chọn hệ Quản trị CSDL không đúng với quy mô, đặc điểm và tính chất của hệ thống.
- Cấu trúc dữ liệu thiết kế không phù hợp, dẫn đến việc xử lý giao dịch đạt hiệu quả thấp.
- Triển khai ứng dụng trên hệ Quản trị CSDL với cấu hình không tốt.
- Chính vì những yêu cầu thực tế và cấp thiết kể trên em quyết định chọn đề tài nghiên cứu về ‘Tối ưu hóa Cơ sở dữ liệu – Các kĩ thuật và ứng dụng”.
- Tối ưu tham số cài đặt, hoạt động của hệ Quản trị CSDL.
- Để tối ưu hiệu năng Hệ CSDL, người quản trị CSDL (Database Administrator) cần có những hiểu biết nhất định về hệ Quản trị CSDL, ngoài ra cần có kinh nghiệm và nắm vững nghiệp vụ của hệ thống.
- Tuy nhiên để làm chủ được một hệ Quản trị CSDL đòi hỏi rất nhiều thời gian và công sức, chưa kể phải liên tục theo dõi và cập nhật các tính năng mới.
- Ngoài ra khi chuyển sang một hệ thống khác với một hệ quản trị CSDL mới, người quản trị phải tiến hành tìm hiểu lại từ đầu.
- Cuối cùng đưa ra một quy trình thu thập, phân tích dữ liệu và các trợ 8 giúp để người quản trị có thể thiết lập các tham số, cấu hình nhằm tối ưu hoạt động của Hệ CSDL.
- CẤU TRÚC VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ QUẢN TRỊ CSDL 2.1.
- Cấu trúc và các thành phần chính Mỗi hệ Quản trị CSDL có những sự khác biệt về mặt cấu trúc, bao gồm nhiều thành phần và quyền hạn tác động vào những thành phần đó.
- Nguyên lý hoạt động của một hệ Quản trị CSDL có thể hiểu là cách thức tương tác giữa các thành phần cấu thành nên một hệ quản trị CSDL để đảm bảo người dùng hoặc ứng dụng có thể tương tác với CSDL.
- Để tìm hiểu nguyên lý hoạt động của một hệ Quản trị CSDL, ta tìm hiểu cấu trúc và cách thức tổ chức của nó.
- Một hệ Quản trị CSDL được tạo thành bởi hai khối thành phần lớn.
- Các tệp dữ liệu.
- Các tiến trình ngầm (background processes) được tổ chức thành các thành phần chuyên biệt đảm nhận nhiệm vụ giúp người dùng, ứng dụng có thể làm việc được với các tệp dữ liệu.
- Các tệp dữ liệu Mọi thông tin trong Hệ CSDL được lưu trữ dưới dạng các tệp và ta chỉ có thể quản lý, khai thác những thông tin này qua hệ Quản trị CSDL.
- Có nhiều loại tệp dữ liệu như tệp lưu thông tin, tệp nhật ký (log file)… Dữ liệu trong Hệ CSDL được lưu vật lý dưới dạng các tệp song chúng được phân chia và tổ chức lại một cách logic bên trong hệ Quản trị CSDL thành các loại đối tượng (Object) khác nhau.
- Các tệp dữ liệu được định nghĩa và tổ chức qua các mô tả sau: OS Unit (Đơn vị nhớ Hệ điều hành) là đơn vị lưu trữ dữ liệu nhỏ nhất của Hệ điều hành.
- 10 Data Unit (Đơn vị dữ liệu) là đơn vị lưu dữ liệu nhỏ nhất của hệ Quản trị CSDL.
- Data Unit Level N (Đơn vị dữ liệu cấp cao) là một khái niệm logic của hệ Quản trị CSDL.
- Với từng hệ Quản trị CSDL thì số cấp của đơn vị dữ liệu là nhiều hoặc ít.
- Tuy nhiên đơn vị dữ liệu cấp 1 gồm nhiều đơn vị dữ liệu liền kề nhau trên ổ cứng.
- Mục đích của những đơn vị dữ liệu cấp cao đảm bảo cho việc đọc, ghi dữ liệu của cùng một đối tượng trong CSDL được liền mạch và dữ liệu của đối tượng đó không bị phân mảnh.
- Data File (Tệp dữ liệu) Những tệp tin lưu trữ dữ liệu của hệ thống bao gồm nhiều đơn vị dữ liệu cấp cao.
- Trong Hệ CSDL thì tệp dữ liệu là những tệp quan trọng nhất do toàn bộ thông tin cần quản lý đều được lưu trữ ở đây.
- File Group (Nhóm tệp) là một khái niệm logic của hệ Quản trị CSDL.
- Nhiều tệp dữ liệu được tổ chức vào một nhóm tệp.
- Mỗi nhóm tệp chứa một hoặc nhiều tệp dữ liệu, nhưng một tệp dữ liệu thuộc một và chỉ một nhóm tệp.
- Để tiện cho việc quản lý linh hoạt, giảm tải những thao tác đọc ghi trên cùng một tệp dữ liệu thì những Hệ CSDL lớn thường có nhiều nhóm tệp.
- Hình 1: Mối liên hệ giữa các thành phần liên quan đến tệp dữ liệu.
- 11 2.1.2 Các thành phần chuyên biệt Các tệp dữ liệu của Hệ CSDL luôn được mã hóa và người dùng không thể làm việc và khai thác thông tin từ chúng.
- Để có thể làm được điều này, mỗi hệ Quản trị CSDL đều có các tiến trình ngầm được tổ chức thành những thành phần chuyên biệt giúp người dùng có thể làm việc được với các tệp dữ liệu.
- Tùy theo từng hệ Quản trị CSDL mà số lượng thành phần và chức năng của chúng có thể khác nhau, song ta tập trung vào những thành phần cơ bản và quan trọng nhất.
- Catalog Manager (Trình quản lý mô tả dữ liệu) Khi nhận được một yêu cầu (request) từ ứng dụng, người dùng dưới dạng một câu lệnh hoặc tập lệnh SQL, việc đầu tiên hệ Quản trị CSDL sẽ kiểm tra cú pháp, tính tồn tại và khả năng truy cập của những đối tượng đề cập trong câu truy vấn.
- Những thông tin này gọi là dữ liệu mô tả đối tượng (hay có những tên gọi khác là từ điển dữ liệu – Data Dictionary, siêu dữ liệu – Metadata) và được lưu trữ trong những bảng đặc biệt.
- Những bảng này được tạo bởi hệ Quản trị CSDL và dữ liệu được tự động cập nhật Query Evaluation Engine (QEE) là bộ định giá truy vấn.
- Files and Access Methods là một tầng phần mềm (Software Layer) có nhiệm vụ tổ chức và sắp xếp dữ liệu trong các tệp dữ liệu theo những cấu trúc riêng để đảm bảo việc truy cập nhanh chóng.
- Hệ Quản trị CSDL sẽ đưa những đơn vị dữ liệu liên quan đến tập đối tượng đó vào Bộ nhớ đệm lưu trữ (Buffer Cached) để xử lý.
- Một số đơn vị dữ liệu đã tồn tại trong Bộ nhớ đệm lưu trữ do những truy vấn trước đó đã yêu cầu truy xuất đến nhưng chưa giải phóng khỏi bộ nhớ.
- Đơn vị dữ liệu hoàn toàn mới, chưa đưa lên Bộ nhớ đệm lưu trữ nên bắt buộc phải đọc từ những tệp dữ liệu trên ổ cứng.
- 12 Buffer Manager (Trình quản lý bộ nhớ đệm) sẽ quản lý những đơn vị dữ liệu khi chúng được đưa vào Bộ nhớ đệm lưu trữ.
- Trình quản lý bộ nhớ đệm cũng là một tầng phần mềm nhưng nhiệm vụ chính của nó là đọc những đơn vị dữ liệu từ các tệp dữ liệu, đưa chúng vào Bộ nhớ đệm lưu trữ và giải phóng khi cần thiết.
- Việc truy xuất những đơn vị dữ liệu trong Bộ nhớ đệm lưu trữ nhanh hơn rất nhiều thay vì phải truy xuất trực tiếp vào tệp dữ liệu.
- Hình 2: Bộ nhớ đệm lưu trữ trong hệ Quản trị CSDL SQL Server.
- Transaction Manager Một câu truy vấn đơn luôn thuộc một và chỉ một giao dịch (Transaction), còn một giao dịch có thể bao gồm nhiều câu truy vấn đơn.
- Do đó, khi một câu truy vấn được xử lý nó sẽ nằm trong một giao dịch.
- Giao dịch này được quản lý bởi thành phần Transaction Manager (Trình quản lý giao dịch).
- Nhiệm vụ chính của thành phần này là đảm bảo khi các giao dịch được thực hiện, nó sẽ tuân theo bốn thuộc tính cơ bản của hệ Quản trị CSDL quan hệ.
- Atomic (nguyên tử) Thuộc tính này đảm bảo các giao dịch là một khối toàn vẹn.
- Giao dịch được thực hiện một cách toàn bộ hoặc hoàn toàn không được thực hiện.
- Trong quá trình thực hiện nếu xuất hiện lỗi, dữ liệu liên quan sẽ trở lại (Rollback) trạng thái ban đầu trước khi thực hiện giao dịch.
- Ví dụ với câu lệnh xóa 20 bản ghi, trong quá trình thực hiện nếu đã xóa được 6 bản ghi nhưng xuất hiện lỗi thì hệ Quản trị CSDL cũng sẽ hủy bỏ và không bản ghi nào trong 20 bản ghi nói trên bị xóa.
- 13 Hình 3: Các thành phần chuyên biệt của một hệ Quản trị CSDL quan hệ.
- Consistency (nhất quán) Thuộc tính này đảm bảo ở mọi thời điểm trước, trong và sau khi thực hiện giao dịch, dữ liệu phải luôn luôn nhất quán.
- Ví dụ trường dữ liệu kiểu số luôn phải chứa dữ liệu kiểu số.
- Nếu ta cố gắng thêm một giá trị kiểu chuỗi 14 vào trường dữ liệu này thì hệ thống sẽ báo lỗi và thao tác thêm dữ liệu đó không được thực hiện.
- Isolation (cô lập) Mỗi giao dịch được đảm bảo trong quá trình đang thực hiện và chưa được xác nhận (Commit) thì giao dịch đó sẽ được tách biệt khỏi các giao dịch khác.
- Ví dụ khi hai giao dịch cùng có thao tác cập nhật chung một dữ liệu, hệ Quản trị CSDL sẽ đảm bảo chúng được thực hiện một cách tuần tự để tránh xung đột.
- Durability (bền vững) Khi giao dịch thực hiện và xác nhận xong, những thay đổi về mặt dữ liệu trong giao dịch được thiết lập và dữ liệu sẽ luôn như vậy kể cả trong trường hợp hệ thống gặp sự cố.
- Trong quá trình khôi phục lại hệ thống phải đảm bảo được việc bảo toàn các dữ liệu cho những giao dịch đã thực hiện thành công .
- Lock Manager (Trình quản lý khóa) có nhiệm vụ chính tạo các khóa dữ liệu, và giải phòng các khóa khi cần thiết để đảm bảo giao dịch được thực hiện theo bốn tiêu chí ACID đã nếu ở trên.
- Trình Quản lý khóa cũng có các đặc tính tuân theo một số tiêu chuẩn chung của hệ Quản trị CSDL quan hệ như sau.
- Access Mode (Chế độ truy cập) Nếu chế độ truy cập dữ liệu là READ ONLY (chỉ đọc), giao dịch không được phép thay đổi dữ liệu.
- Do đó các thao tác như thêm, cập nhật, xóa…dữ liệu không được thực hiện.
- Isolation Level (Mức độ cô lập) Để đảm bảo hoạt động của một giao dịch diễn ra như mong muốn và không xung đột với các giao dịch khác chưa được xác nhận, hệ Quản Trị CSDL đưa ra bốn mức cô lập như hình dưới đây: Hình 4: Các mức cô lập của hệ Quản trị CSDL.
- SERIALIZABLEMức độ cô lập cao nhất của một giao dịch.
- Khi thiết lập mức độ này, hệ Quản trị CSDL đảm bảo giao dịch chỉ đọc các sự thay đổi dữ liệu đã được xác nhận.
- Những dữ liệu mà giao dịch làm việc(đọc, ghi) sẽ không bị thay đổi trong 15 quá trình thực hiện.
- Ngoài ra tập dữ liệu mà giao dịch làm việc cũng sẽ không thay đổi cho đến khi giao dịch kết thúc.
- REPEATABLE READ Cũng giống như SERIALIZABLE nhưng mức độ cô lập này không đảm bảo tập dữ liệu mà giao dịch làm việc sẽ được giữ nguyên trong quá trình thực hiện.
- READ COMMITTED đảm bảo giao dịch chỉ đọc các sự thay đổi dữ liệu đã được xác nhận.
- Tuy nhiên nó chỉ đảm bảo những dữ liệu bị thay đổi bởi giao dịch không thể bị thay đổi bởi các giao dịch khác cho đến khi giao dịch kết thúc.
- Còn những dữ liệu được đọc bởi giao dịch thì có thể bị thay đổi bởi các giao dịch khác.
- READ UNCOMMITED có thể đọc các dữ liệu chưa được xác nhận.
- Các hệ Quản trị CSDL đều quy định với mức độ cô lập này thì các giao dịch chỉ có một chế độ truy cập là READ ONLY.
- Với các lý do trên giao dịch ở mức độ cô lập này không tạo bất kì khóa nào.
- Nguyên lý hoạt động của hệ Quản trị CSDL Với những nội dung đã đề cập tại phần trên, ta tiến hành tìm hiểu nguyên lý hoạt động của hệ Quản trị CSDL khi xử lý một yêu cầu từ người dùng, ứng dụng.
- Bước Hệ CSDL đơn người dùng Thành phần liên quan 1 Người dùng kết nối đến hệ Quản trị CSDL, tương ứng trên hệ Quản trị CSDL sẽ sinh một tiến trình chủ (Server Process) để tiếp nhận và làm việc với người dùng sau khi xác thực.
- 2 Người dùng gửi một yêu cầu đến hệ Quản trị CSDL.
- Yêu cầu này được thể 16 hiện qua một câu lệnh đơn, một tập các câu lệnh, thủ tục (Stored Procedure), hàm (Function) hoặc bẫy (Trigger)… 3 Hệ quản trị CSDL sẽ kiểm tra tính tồn tại của các đối tượng có trong yêu cầu và các quyền (Privileges) của người dùng để chắc chắn rằng người dùng có thể thực hiện được yêu cầu.
- Trình quản lý mô tả dữ liệu 4 Tiến trình chủ kiểm tra yêu cầu tương tự đã có trong Bộ nhớ đệm truy vấn (Query Cached) hay chưa.
- Bộ định giá truy vấn 6 Hệ Quản trị CSDL sẽ kiểm tra những đơn vị dữ liệu cần thiết cho câu lệnh đã có đủ trong Bộ nhớ đệm lưu trữ hay chưa.
- Với những đơn vị dữ liệu còn thiếu, chúng sẽ được đọc từ tệp dữ liệu và đưa vào Bộ nhớ đệm lưu trữ.
- Trình quản lý bộ nhớ đệm 7 Trước khi thực hiện yêu cầu, hệ Quản trị CSDL sẽ lập tức tạo các khóa ở mức bản ghi, hoặc đối tượng nếu cần thiết để ngăn ngừa các tiến trình khác có thể tác động vào cùng dữ liệu

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt