Với những ưu điểm nổi trội trong việc đáp ứng các bài toán quản lý lớn, Bộ Tài nguyên và Môi trường là một trong những bộ ngành lựa chọn hệ quản trị CSDL Oracle để quản lý dữ liệu trong một số dự án. Đặc thù của ngành là quản lý khối lượng dữ liệu rất lớn của 8 lĩnh vực, bao gồm dữ liệu về bản đồ, ảnh viễn thám và dữ liệu thuộc tính, hệ quản trị CSDL Oracle đã được minh chứng được khả năng đáp ứng các yêu cầu về quản lý và hiệu năng truy xuất dữ liệu của ngành. Về khía cạnh tối ưu hóa, Oracle cung cấp các công cụ và kỹ thuật toàn diện cho phép cán bộ quản trị tối ưu hóa CSDL tùy thuộc theo mục đích và ngữ cảnh của bài toán. Tuy nhiên, thực tế cho thấy, khi triển khai vận hành các hệ thống lớn, các cán bộ quản trị CSDL chưa đầu tư nhiều thời gian và công sức cho hoạt động tối ưu hóa hệ thống. Việc tối ưu hóa chỉ diễn ra khi hệ thống chạy quá chậm, không đáp ứng được nhu cầu của người sử dụng. Điều này ảnh hưởng nhiều đến hiệu năng và hiệu quả của hệ thống. Vì vậy, để cung cấp một cái nhìn tổng quan về chủ đề tối ưu hóa, đồng thời cung cấp bộ tài liệu kỹ thuật hướng dẫn phương pháp và quy trình giám sát, tối ưu CSDL Oracle, đề tài “Nghiên cứu các phương pháp tối ưu hóa (database optimization) trên hệ quản trị CSDL Oracle và ArcGIS nhằm cải tiến hiệu năng các hệ thống thông tin ngành tài nguyên và môi trường” được thực hiện.
Mục tiêu của đề tài
Nghiên cứu xây dựng tài liệu kỹ thuật hướng dẫn phương pháp và quy trình giám sát, tối ưu CSDL Oracle và ArcSDE.
Áp dụng thử nghiệm tối ưu hóa trên cơ sở dữ liệu của dự án “Xây dựng cơ sở dữ liệu quốc gia tài nguyên và môi trường” để đánh giá và hoàn thiện quy trình.
Nội dung nghiên cứu
Để đạt được mục tiêu đã đặt ra, đề tài tập trung thực hiện các nội dung, bao gồm:
Nội dung 1: Nghiên cứu các phương pháp giám sát và theo dõi hiệu năng hệ quản trị CSDL Oracle; Nghiên cứu phương pháp tối ưu câu lệnh PL/SQL; Nghiên cứu phương pháp cấu hình tối ưu CSDL Oracle.
Nội dung 2: Nghiên cứu các phương pháp giám sát và theo dõi hiệu năng của dịch vụ ArcSDE; Nghiên cứu các phương pháp tối ưu hóa ArcSDE.
Nội dung 3: Xây dựng tài liệu kỹ thuật hướng dẫn phương pháp và quy trình giám sát, tối ưu CSDL Oracle và ArcSDE.
Nội dung 4: Thử nghiệm phương pháp và quy trình tối ưu hóa trên dữ liệu của dự án Xây dựng cơ sở dữ liệu quốc gia tài nguyên và môi trường.
Kết quả nghiên cứu
1. Quy trình tối ưu hệ thống Oracle Database và ArcGIS SDE bao gồm 4 bước cơ bản:
Thiết lập các công cụ giám sát hệ thống.
Từ các công cụ giám sát hệ thống, đọc và theo dõi các thông tin cảnh báo về những hoạt động ảnh hưởng đến hiệu năng, đọc các gợi ý về tối ưu được các công cụ giám sát đưa ra.
Thực hiện tối ưu hóa (dựa trên những gợi ý được đưa ra, hoặc dựa theo kiến thức quản trị hệ thống của người sử dụng)
Tiếp tục giám sát hệ thống sau quá trình tối ưu.
2. Giám sát và tối ưu bộ nhớ (Memory Advisors)
Quy trình giám sát và tối ưu bộ nhớ bao gồm 4 bước như sau:
B1: Theo dõi các cảnh báo của chức năng ADDM Performance Analysis trong công cụ Oracle Enterprise Manager.
B2: Sau khi có các cảnh báo về bộ nhớ xuất hiện, đọc các thông tin các vấn đề về bộ nhớ và các gợi ý xử lý của Oracle Enterprise Manager
B3: Sử dụng chức năng Memory Advisors để chỉnh các tham số bộ nhớ theo gợi ý của Oracle Enterprise Manager hoặc theo kinh nghiệm của người quản trị
B4: Sử dụng các chế độ bộ nhớ phù hợp, với mỗi chế độ bộ nhớ thì sẽ có thêm các tham số cần phải kiểm soát: Chế độ quản lý bộ nhớ tự động: AMM (Automatic memory management); Chế độ quản lý tự động bộ nhớ chia sẻ: ASMM (Automatic shared memory management); Chế độ quản lý bộ nhớ bằng tay: MSMM (Manual Shared Memory Management).
Giám sát và tối ưu không gian đĩa lưu trữ
B1: Cấu hình Segment Advisor để theo dõi các tablespace chứa dữ liệu bản đồ.
B2: Sau khi cấu hình Segment Advisor xong, nếu có hiện tượng phân mảnh dữ liệu trên đĩa trong tablespace theo dõi, các cảnh báo sẽ được hiển thị tại trang HOME, mục Space Summary của công cụ Oracle Enterprise Manager.
B3: Khi nhấn vào các cảnh báo để vào xem thông tin chi tiết, người dùng có thể quyết định có chống phân mảnh luôn hay không. Nếu sự phân mảnh là quá lớn và cần chuẩn bị cho việc truy cập dữ liệu bản đồ ngay thì cần tiến hành chống phân mảnh ngay lập tức. Nếu quá trình tác nghiệp đang bận rộn thì có thể lập lịch để hệ thống tự chống phân mảnh vào khoảng thời gian hệ thống rỗi rãi hơn.
Giám sát và tối ưu câu lệnh SQL (SQL Advisors)
Các SQL Advisors kiểm tra một câu lệnh SQL hoặc một tập các câu lệnh SQL và cung cấp các khuyến nghị để nâng cao hiệu quả. Các advisor này có thể đưa ra các loại khuyến nghị khác nhau, cơ cấu lại các câu lệnh SQL, tạo index bổ sung, hoặc phân vùng, và làm mới các thống kê tối ưu hóa (optimizer statistics).
Oracle Enterprise Manager Database Control (Database Control) cho phép quản trị viên chấp nhận và thực hiện nhiều khuyến nghị chỉ với một vài động tác click chuột.
Có hai SQL advisor là SQL Tuning Advisor and SQL Access Advisor.
SQL Tuning Advisor Quản trị viên sử dụng SQL Tuning Advisor để điều chỉnh một câu lệnh SQL đơn lẻ hoặc nhiều câu lệnh SQL. Thông thường, quản trị viên chạy advisor này để phản ứng với một phát hiện (finding) về hiệu suất của ADDM. Quản trị viên cũng có thể chạy định kỳ trên các câu lệnh SQL chiếm nhiều tài nguyên, và trên một SQL workload.
SQL Access Advisor SQL Access Advisor chủ yếu chịu trách nhiệm cho việc tạo các khuyến nghị sửa đổi lược đồ. SQL Access Advisor có thể khuyến nghị quản trị viên nên tạo các cấu trúc truy cập như index và materialized views để tối ưu hóa các truy vấn SQL. SQL Access Advisor cũng có thể khuyên quản trị viên phân vùng table, index, hoặc materialized views để cải thiện hiệu suất truy vấn.
Điều chỉnh câu lệnh và workload Lưu ý rằng cả Tuning Advisor SQL và SQL Access Advisor cung cấp các khuyến nghị tạo index. SQL Tuning Advisor khuyến nghị tạo ra các chỉ số chỉ khi nó dự đoán mức tăng hiệu năng vượt trội cho các câu lệnh SQL đang được điều chỉnh. Tuy nhiên, việc tạo ra các index có thể tác động không tốt đến hiệu năng của DML thêm mới, cập nhật, và xóa. SQL Tuning advisor không quan tâm đến vấn đề này khi đưa ra các khuyến nghị tạo index.
Quy trình tối ưu câu lệnh SQL
Quy trình tối ưu lệnh SQL bao gồm 6 bước
B1: Mở SQL Tuning Advisor trong đường dẫn HOME/Advisor Central
B2: Cấu hình SQL Tuning Sets để theo dõi một tablespace cụ thể
B3: Xác định các lệnh SQL có thời gian thực thi cao (trong trang SQL Tuning Sets hoặc HOME/Top Activity)
B4: Cấu hình SQL Advisors để OM tự động tối ưu lệnh SQL
B5: Cấu hình SQL Access Advisor để xác định các gợi ý tạo chỉ mục hoặc truy vấn tạm
B6: Thực hiện tối ưu lệnh SQL thủ công dựa vào gợi ý của SQL Access Advisor
Tối ưu dịch vụ bản đồ ArcSDE
Dữ liệu bản đồ sử dụng cho dịch vụ ArcSDE là dữ liệu có dung lượng lớn. Do đó nếu có sự thay đổi đáng kể trong dữ liệu do quá trình tác nghiệp thêm, xóa, sửa các đối tượng đồ họa liên tục sẽ làm dữ liệu bị phân mảnh, cùng một dữ liệu sẽ tồn tại ở nhiều phiên bản khác nhau. Khi đó nếu muốn hiển thị dữ liệu bản đồ, ArcSDE sẽ phải mất công xác định bản dữ liệu cuối để hiển thị.
Quy trình nén dữ liệu bản đồ
Quy trình nén dữ liệu bản đồ gồm 3 bước sau:
B1: Kiểm tra trạng thái kết nối của dịch vụ ArcSDE.
B2: Tiến hành nén dữ liệu bản đồ bằng câu lệnh sau
B3: Kiểm tra trạng thái dữ liệu sau khi nén để xác thực phiên bản DEFAULT trở về trạng thái 0 bằng việc sử dụng lệnh “sdeversion -o”. Nếu kết quả trả về của giá trị DEFAULT version’s state_id là 0 thì việc nén đã hoàn tất.
3. Triển khai thử nghiệm
Các công cụ, phần mềm sử dụng trong thử nghiệm
Công cu giả lâp hoat đông truy câp dịch vu bản đồ
Công cu quản lý cơ sở dữ liêu Oracle Enterprise Manager
Công cu quản lý và kiểm thử câu lênh Oracle SQL Developer
Tối ưu hiệu năng sử dụng bộ nhớ
Tối ưu không gian lưu trữ
Cấu hình Segment để theo dõi pphân mảnh têp dữ liêu
Xử lý phân mảnh têp dữ liệu thủ công
Xử lý phân mảnh tệp dữ liệu tự đông
Tối ưu câu lệnh SQL
Cấu hình SQL Tuning Advisor để theo dõi một tablespace cụ thể
Nhận biết các câu lệnh SQL cần nhiều tài nguyên hệ thống
Cấu hình tối ưu tự động các truy vấn
Thực hiện tối ưu các truy vấn bằng cách thủ công
Cấu hình SQL Access Advisor
Nguồn Dinte