Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ PhúcLỜI NÓI ĐẦU CSDL phân tán được xây dựng dựa trên nền tảng của CSDL tập trung, song song với sự phát triển mạnh mẽ của công n
Trang 1Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin
BÀI THU HỌC MÔN
CƠ SỞ DỮ LIỆU NÂNG CAO
ĐỀ TÀI:
TỐI ƯU HOÁ TRUY VẤN PHÂN TÁN
-ỨNG DỤNG TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ORACLE
GVHD: PGS.TS ĐỖ PHÚC Người thực hiện: Nguyễn Siêu Đẳng
Mã số: CH1101008 Lớp: Cao học khóa 6
TP.HCM – 2012
Trang 2MỤC LỤC
***
Trang 3Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc
LỜI NÓI ĐẦU
CSDL phân tán được xây dựng dựa trên nền tảng của CSDL tập trung, song song với sự phát triển mạnh mẽ của công nghệ mạng máy tính và thiết
kế theo phương pháp phân mảnh dữ liệu (phân mảnh ngang, phân mảnh dọc, phân mảnh hỗn hợp) và sử dụng các bản sao (replication), dữ liệu phân tán
sẽ được cập nhật và lưu tại các nút (sites), mỗi nút tương ứng với một
“database server” và chỉ thực hiện một số chức năng nhất định Ứng dụng CSDL phân tán có thể khắc phục được các nhược điểm vốn có của CSDL tập trung, việc kết nối giữa các CSDL từ xa được thực hiện qua kết nối “database link” đáp ứng được một số tiêu chuẩn như: cải thiện năng suất thực hiện công việc, đảm bảo an toàn dữ liệu, giảm chi phí truyền thông, bảo mật cao, dễ thay đổi, phát triển, …
Bài thu hoạch này chú trọng tìm hiểu về CSDL phân tán, nguyên lý chung của tối ưu hoá truy vấn, các thuật toán tối ưu hoá truy vấn trong môi trường phân tán và tìm hiểu CSDL phân tán trong Oracle, tối ưu hoá truy vấn trong Oracle.
Với thời lượng lên lớp hạn chế nhưng thầy Đỗ Phúc đã tận tình truyền tải một khối lượng lớn kiến thức, chia sẻ và định hướng phát triển cũng như những ứng dụng của CSDL, công nghệ hệ quản trị CSDL vào thực tiễn Cảm
ơn thầy đã tận tình giảng dạy và hướng dẫn hoàn tất bài thu hoạch này Chúc thầy được nhiều sức khoẻ Trân trọng.
Học viên thực hiện Nguyễn Siêu Đẳng.
Trang 4PHẦN I : CƠ SỞ DỮ LIỆU PHÂN TÁN - NGUYÊN LÝ CHUNG CỦA TỐI
ƯU HOÁ TRUY VẤN
I.1. Khái niệm về Cơ sở dữ liệu phân tán
Sự hợp nhất giữa công nghệ CSDL và công nghệ mạng máy tính tạo thành cơ sở dữ liệu phân tán Mục đích của sử dụng các hệ CSDL là việc tích hợp các dữ liệu, giao tác của tổ chức và cho phép truy xuất tập trung, điều khiển được các truy xuất đến dữ liệu đó, còn công nghệ mạng giúp phân bố
dữ liệu, tối ưu hoá truy xuất dữ liệu toàn cục cũng như cục bộ.
CSDL PT là một tập hợp nhiều CSDL có liên đới logic và được phân bố trên một mạng máy tính Hệ quản trị CSDL PT được định nghĩa là một hệ thống phần mềm cho phép quản lý các CSDL PT, và làm cho việc phân tán trở nên trong suốt đối với người sử dụng.
Những ưu điểm của các hệ CSDL PT như sau:
− Quản trị dữ liệu phân tán với nhiều mức trong suốt khác nhau Hệ quản trị CSDL PT cung cấp khả năng trong suốt phân tán (distribution transparent) với ý nghĩa là che dấu các chi tiết như dữ liệu được lưu trữ ở đâu trong hệ thống,… Hệ quản trị CSDL PT có thể cung cấp các khả năng trong suốt sau:
o Trong suốt phân tán, hay trong suốt mạng;
o Trong suốt nhân bản;
o Trong suốt phân mảnh;
− Tăng tính tin cậy và tính sẵn sàng.
− Cho phép dùng chung dữ liệu trong khi vẫn duy trì được biện pháp điều khiển cục bộ.
− Cải tiến hiệu năng.
Trang 5Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc
− Các trạm phải đuợc kết nối mạng dể truyền dữ liệu và các lệnh giữa các trạm.
− Định nghĩa các dữ liệu phân tán.
− Kiểm tra ngữ nghĩa của các dữ liệu phân tán.
− Định giá các câu truy vấn phân tán do người dùng đưa ra.
− Quản lý các giao tác phân tán.
− Bảo mật giao tác và dữ liệu.
− Phục hồi CSDL PT, cung cấp khả năng phục hồi dữ liệu từ những trạm (site) bị lỗi.
− Quản trị nhân bản dữ liệu.
Một tính chất quan trọng của các CSDL PT là tính thuần nhất hay không thuần nhất:
o Một CSDL PT thuần nhất (homogeneous DDB) có được bằng cách chia một CSDL thành một tập các CSDL cục bộ, mỗi CSDL cục bộ này được quản trị bởi cùng một hệ quản trị CSDL Một CSDL PT thuần nhất thường là kết quả của cách tiếp cận thiết kế trên xuống (top-down), trong đó ta thiết kế một CSDL PT từ một CSDL tập trung.
Trang 6o Một CSDL PT không thuần nhất (heterogeneous DDB) là một CSDL PT có được bằng cách tích hợp một tập các CSDL cục bộ (có thể được xây dựng từ các mô hình dữ liệu khác nhau) được quản trị bởi các hệ quản trị CSDL khác nhau, thành một CSDL duy nhất.
I.2. Các mục tiêu của hệ quản trị Cơ sở dữ liệu phân tán
Sự độc lập dữ liệu và trong suốt phân bố
− Người dùng không quan tâm đến sự phân tán dữ liệu Các thông tin được lưu giữ trong từ điển dữ liệu (catalog) và được hệ quản trị CSDL
PT sử dụng để định vị dữ liệu.
− Một dạng trong suốt cơ bản cần có trong một hệ CSDL PT, nó liên quan đến tính độc lập dữ liệu (data independence) và làm tăng khả năng thích ứng của các ứng dụng đối với những thay đổi trong định nghĩa và
tổ chức của dữ liệu và ngược lại.
− Không có sự khác biệt nào giữa các ứng dụng chạy trên CSDL tập trung với ứng dụng chạytrên CSDL PT.
Trong suốt phân mảnh
− Việc truy cập tới dữ liệu thường được xác định trên các quan hệ con (thu được từ việc chia nhỏ các quan hệ gốc) được gọi là các mảnh (fragment).
− Phân mảnh (ngang, dọc, hỗn hợp) làm tăng hiệu năng, tính sẵn sàng,
độ tin cậy của CSDL PT.
− Trong suốt phân mảnh che dấu sự phân đoạn đối với người dùng.
Trong suốt nhân bản
− Một giải pháp cho sự tin cậy dữ liệu là việc tạo ra dư thừa dữ liệu dưới một hình thức nào đó Mỗi mảnh dữ liệu được sao lưu thành hai hay nhiều bản, mỗi bản được lưu trên một trạm khác nhau, được gọi là sự nhân bản.
− Giúp hệ CSDL PT nâng cao hiệu năng, độ tin cậy và tính sẵn sàng Tuy nhiên việc nhân bản sẽ gây khó khăn cho việc cập nhật CSDL, và việc duy trì và quản lý các bản sao là phức tạp và tốn kém.
− Việc trong suốt nhân bản là việc che dấu khiến người dùng chỉ nhìn thấy các quan hệ không có nhân bản.
Trang 7Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc Tính trong suốt đối với hệ quản trị CSDL
− Cho phép che dấu đối vói người dùng việc các hệ quản trị CSDL cục bộ
có thể khác nhau.
Tính tự trị của các trạm
− Cho phép mỗi trạm điều khiển và thao tác dữ liệu địa phương một cách độc lập với các trạm khác Do đó việc quản trị của CSDL PT có thể hoàn toàn phi tập trung.
Tính mở rộng
− Khả năng mở rộng bằng việc đưa thêm các trạm mới vào mạng với ảnh hưởng tối thiểu lên các CSDL cục bộ và các chương trình ứng dụng hiện có.
I.3. Kiến trúc hệ quản trị Cơ sở dữ liệu phân tán
Có nhiều kiểu kiến trúc CSDL như: các hệ CSDL client/server, các phức hệ CSDL, hay các CSDL trong môi trường phân tán đầy đủ (không có sự phân biệt nào giữa client và server) hay còn gọi là các hệ phân tán ngang hàng Các hệ phân tán ngang hàng
− Tổ chức vật lý trên mỗi máy có thể rất khác nhau, do đó ta cần phải có một định nghĩa tổ chức dữ liệu vật lý cho mỗi trạm, mà chúng ta gọi là lược đồ trong cục bộ (LIS) Hình ảnh về toàn thể CSDL được mô tả bởi lược đồ khái niệm toàn cục (GCS), nó mô tả cấu trúc logic của dữ liệu ở mọi vị trí Để xử lý việc phân mảnh và nhân bản ta sử dụng lược đồ khái niệm cục bộ (LCS), mô tả tổ chức logic của dữ liệu tại mỗi trạm Do
đó trong kiến trúc này lược đồ khái niệm toàn cục là “hợp” của các lược
Trang 8Kiến trúc tham chiếu CSDL PT Các thành phần cụ thể của một hệ CSDL PT: gồm 2 thành phần – một thành phần xử lý mọi tương tác với người sử dụng là bộ xử lý tiếp nhận người dùng (User Processor) và một phần thực hiện việc xử lý dữ liệu (Data Processor).
− Thành phần đầu tiên bao gồm:
o Bộ giao tiếp người dùng (user interface handler): diễn dịch các lệnh của người sử dụng, định dạng dữ liệu để chuyển cho người
sử dụng các kết quả;
o Bộ kiểm soát dữ liệu ngữ nghĩa (semantic data controller): sử dụng các ràng buộc toàn vẹn (integrity constraints) và thông tin cấp phép, quyền hạn (authorization), được định nghĩa như thành phần của lược đồ khái niệm toàn cục, để kiểm tra, xác định xem các câu truy vấn có xử lý được hay không;
o Bộ tối ưu truy vấn toàn cục (Global query optimizer): xác định một chiến lược hoạt động để giảm thiểu chi phí và phiên dịch các câu truy vấn toàn cục thành câu truy vấn cục bộ thông qua việc
sử dụng các lược đồ toàn cục, khái niệm cục bộ và thư mục toàn cục, ngoài ra còn chịu trách nhiệm tạo ra một chién lược thực thi tốt cho các phép nối phân tán;
o Bộ theo dõi hoạt động toàn cục (Global execution Monitor): có trách nhiệm điều phối việc thực hiện phân tán các yêu cầu của
Trang 9Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc
người dùng và cũng được gọi là bộ quản lý giao dịch phân tán (Distributed transaction manager).
− Thành phần thứ hai gồm:
o Bộ tối ưu truy vấn cục bộ (Local query processor): chịu trách nhiệm chọn ra một đường truy xuất thích hợp nhất để truy xuất các dữ liệu;
o Bộ khôi phục cục bộ (Local recovery manager): đảm bảo cho các CSDL cục bộ duy trì được tính nhất quán khi có sự cố xảy ra;
o Bộ hỗ trợ thực thi (Runtime support processor): truy xuất CSDL tùy vào các lệnh trong lịch (schedule) do bộ tối ưu vấn tin sinh ra,
là giao diện với bộ điều hành và chứa bộ quản lý vùng đệm CSDL (database buffer manager), chịu trách nhiệm quản lý vùng đệm
và quản lý việc truy xuất dữ liệu.
Trang 10Các thành phần của một hệ quản trị CSDL PT
I.4. Một số nguyên lý chung của tối ưu hóa truy vấn
Việc xử lý, tối ưu hóa truy vấn có tầm ảnh hưởng
quan trọng tới hiệu năng xử lý dữ liệu của hệ thống, do
vậy cần quan tâm trong cả ngữ cảnh tập trung lẫn
phân tán Bài toán xử lý truy vấn trong môi trường
phân tán có rất nhiều phức tạp, do có nhiều yếu tố ảnh
hưởng đến hiệu năng của các truy vấn phân tán.
Thí dụ: Một quan hệ có mặt trong câu truy vấn có thể bị phân mảnh hay nhân bản ở nhiều trạm, hệ thống phải tiêu tốn thêm chi phí truyền thông trong việc xử lý truy vấn, hay có nhiều trạm phải truy xuất nên thời gian đáp ứng có thể là lâu hơn.
Mục tiêu của bài toán xử lý truy vấn
Bộ xử lý truy vấn có nhiệm vụ phân tích, biến đổi các câu truy vấn cấp cao (ở dạng các phép tính quan hệ) thành một câu truy vấn tương đương ở cấp thấp hơn (dạng đại số quan hệ).
Câu truy vấn cấp thấp này việc cài đặt các chiến lược thực thi sẽ được thực hiện, biến đổi câu truy vấn phải đáp ứng được cả tính đúng đắn, lẫn tính hiệu quả Một biến đổi được coi là đúng đắn nếu câu truy vấn cấp thấp cho cùng một kết quả như câu truy vấn cấp cao Việc đưa ra được một chiến lược thực thi thích hợp để đạt được tính hiệu quả lại là một bài toán khó.
Một câu truy vấn cấp cao có thể được biến đổi thành nhiều câu truy vấn cấp thấp tương đương, mỗi một chiến lược thực thi này lại tiêu tốn tài nguyên hệ thống rất khác nhau Khó khăn là phải tìm ra một chiến lược nhằm
hạ thấp tối đa tiêu dùng tài nguyên.
Độ phức tạp của các phép toán đại số quan hệ
Trang 11Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc Đại số quan hệ là một phương pháp cơ bản để biểu diễn kết quả của việc
xử lý truy vấn, sự phức tạp của phép toán đại số quan hệ có sự ảnh hưởng trực tiếp đến thời gian xử lý Những nguyên tắc sau đây giúp chọn lựa ra cây thực thi:
− Độ phức tạp được định nghĩa đơn giản nhất là theo lực lượng của quan
hệ (cardinality), độc lập với việc cài đặt vật lý như phân mảnh và cấu trúc lưu trữ dữ liệu Bảng sau cho ta thấy sự so sánh độ phức tạp của các phép toán quan hệ:
− Dựa trên bảng so sánh có thể sơ lược rút ra kết luận như sau:
o Trước hết độ phức tạp có tính tương quan so với lực lượng của quan hệ, các thao tác có tính chọn làm giảm đi lực lượng cần phải được ưu tiên thực hiện trước ;
o Thứ hai các phép toán cần phải được sắp xếp theo độ phức tạp
để tránh thực hiện tích Descartes, hay để thực hiện sau.
Mô tả bộ xử lý truy vấn
Xử lý truy vấn trên các hệ CSDL thì ngôn ngữ sử dụng chủ yếu được biểu diễn dựa trên các phép tính quan hệ, quá trình phân rã câu truy vấn chúng được chuyển thành các phép tính đại số quan hệ.
Trang 12Trong môi trường phân tán, ngôn ngữ đầu ra (output) là dạng đại số quan hệ được tăng cường thêm các yếu tố truyền tin (nguyên thủy truyền tin- communication primitive) Các phép toán này được cài đặt trực tiếp trong hệ thống Việc xử lý truy vấn là sự ánh xạ hiệu quả từ ngôn ngữ đầu vào (input) thành ngôn ngữ đầu ra.
Ullman J.D trong các kết quả nghiên cứu của mình đã trình bày những chiến lược tổng quan cho tối ưu hóa như sau:
− Thực hiện phép chọn sớm nhất có thể: nhằm làm giảm kích thước của các kết quả trung gian.
− Tổ hợp phép chọn xác định với phép tích Descartes thành phép kết nối: phép kết nối, đặc biệt là phép kết nối bằng có chi phí thực hiện thấp hơn so với phép tích Descartes trên cùng hai quan hệ Nếu kết quả của tích Descartes RxS là đối số của phép chọn, và phép chọn lại có liên quan đến phép so sánh giữa các thuộc tính của R và S thì ta đưa về phép kết nối để giảm chi phí.
− Tổ hợp dãy các phép toán một ngôi như phép chọn và phép chiếu: bất
kỳ dãy các phép toán một ngôi (như phép chọn, phép chiếu) có kết quả phụ thuộc vào các bộ của một quan hệ độc lập thì có thể nhóm các phép
đó lại
− Tìm các biểu thức con chung trong một biểu thức: Nếu kết quả của một biểu thức con chung – biểu thức xuất hiện hơn một lần là một quan hệ không lớn và nó có thể được đọc từ bộ nhớ thứ cấp với ít thời gian, thì nên tính toán trước biểu thức đó chỉ một lần.
− Tiền xử lý các tệp: cần sắp xếp các tệp và thiết lập các tệp chỉ số, khi đó việc thực hiện các phép toán liên quan đến hai tệp (phép toán hai ngôi)
sẽ nhanh hơn nhiều.
− Đánh giá trước khi thực hiện phép toán: khi cần chọn trình tự thực hiện các phép toán trong biểu thức, hay việc chọn một trong hai đối của phép tính hai ngôi, thì nên tính toán chi phí thực hiện các phép toán đó (như số phép tính, thời gian, dung lượng bộ nhớ theo kích thước các quan hệ,…) theo các cách khác nhau Từ đó sẽ quyết định phương án có chi phí thấp.
Trang 13Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc Thời điểm tối ưu hóa : tối ưu hóa câu truy vấn có thể thực hiện tại những thời điểm khác nhau:
− Tối ưu hóa kiểu tĩnh (ví dụ R*): được thực hiện trước khi thực thi truy vấn, thực hiện vào lúc biên dịch Đây là thời điểm thích hợp cho phương pháp vét cạn, phương án thích hợp khi các truy vấn được thực thi nhiều lần, do vây chi phí sẽ được bù đắp qua các lần sử dụng Nhưng phương pháp này cũng có khó khăn khi xác định kích thước các quan
hệ kết quả trung gian, chúng được đánh giá theo các số liệu thống kê của CSDL.
− Tối ưu hóa kiểu động (ví dụ Distributed INGRESS): được tiến hành trong thời gian thực thi truy vấn (run time) Ở mỗi thời điểm của quá trình thực thi, sẽ chọn ra thao tác kế tiếp tốt nhất dựa trên thông tin chính xác về kết quả của các thao tác thực hiện trước đó Ưu điểm chính của phương pháp này là xác định được chính xác kích thước của quan hệ trung gian, nhưng cũng có nhược điểm là thao tác có thể phải lặp đi lặp lại cho mỗi lần thực hiện truy vấn.
− Các phương pháp hỗn hợp (ví dụ MERMAID): được thử nghiệm nhằm cung cấp những ưu điểm của phương pháp tĩnh, đồng thời tránh được các vấn đề do các đánh giá không chính xác gây ra Về cơ bản vẫn sử dụng phương pháp tĩnh, nhưng khi phát hiện ra lỗi trong việc xác định kich cỡ thì sử dụng phương pháp động trong thời gian thực thi.
Bài toán xử lý truy vấn được phân rã thành nhiều bài toán con tương ứng với các tầng khác nhau trong xử lý vấn tin phân tán.
Trang 14Lược đồ tổng quát xử lý truy vấn phân tán Nguồn của quá trình xử lý truy vấn là câu truy vấn dạng phép tính trên các quan hệ phân tán Các tầng tham gia vào việc phân tích xử lý truy vấn thành một dãy tối ưu các phép toán cục bộ là: phân rã câu truy vấn, định vị
dữ liệu, tối ưu hóa toàn cục, và tối ưu hóa cục bộ Phân rã truy vấn và cục bộ hóa dữ liệu tương ứng với quá trình viết lại câu truy vấn Ba tầng đầu tiên được thực hiện bởi một trạm trung tâm và sử dụng thông tin toàn cục, tầng thư tư được thực hiện tại các trạm cục bộ.
Phân rã truy vấn
Phân rã câu truy vấn phân tán dạng phép tính quan hệ thành câu truy vấn đại số trên quan hệ toàn cục Các kỹ thuật được sử dụng ở phần này là những kỹ thuật của các Hệ quản trị CSDL tập trung.
Các bước phân rã truy vấn: Đưa về dạng chuẩn tắc; Loại bỏ dư thừa; Phân tích; Viết lại truy vấn.
Trang 15Bài thu hoạch: Cơ sở dữ liệu nâng cao GVHD: PGS.TS Đỗ Phúc Đưa về dạng chuẩn tắc (normalization):
Mục đích của chuẩn hóa là biến đổi câu truy vấn thành một dạng chuẩn
để xử lý Với các ngôn ngữ quan hệ như SQL, biến đổi quan trọng nhất là lượng từ hóa vấn tin, có thể là một vị từ phi lượng từ với độ phức tạp nào đó, với tất cả các lượng từ cần thiết đặt phía trước.
Có hai dạng chuẩn có thể có cho vị từ:
− Dạng chuẩn hội (conjunctive normal form) là hội của các tuyển:
− Dạng chuẩn tuyển (disjunctive normal form) là tuyển của các hội:
Biến đổi các vị từ phi lượng từ là chuẩn hóa bẳng cách sử dụng các qui tắc
tương đương đã biết trong toán logic:
Loại bỏ dư thừa (simplification):
Sau khi lượng từ hóa truy vấn, kết quả có thể chứa các vị từ dư thừa Các
vị từ này có thể được loại bỏ bằng cách giản ước lượng từ hóa bằng các qui tắc lũy đẳng sau:
Trang 17Viết lại truy vấn (restructuring):
1) Biến đổi câu truy vấn (query tree) sang dạng đại số quan hệ;
2) Cấu trúc lại câu truy vấn đại số nhằm cải thiện hiệu năng.
Câu truy vấn sẽ được biểu diễn dưới dạng cây toán tử Mỗi nút lá biểu thị cho một quan hệ của CSDL, các nút không phải lá biểu thị cho quan hệ trung gian được sinh ra bởi các phép tính quan hệ Chuỗi các phép toán theohướng
từ lá đến gốc biểu thị cho kết quả truy vấn.
Các quy tắc biến đổi (transformation rule):
1) Giao hoán của phép toán hai ngôi”:
3) Đối với phép toán một ngôi nếu R[A] và A' ⊆ A, A" ⊆ A và A'⊆ A"ta có:
o ∏A’ (∏A” (R )) ∏A’ ( R)
o
4) Giao hoán giữa phép chọn và phép chiếu
o
o Lưu ý nếu Ap là phần tử của {A1,…,An} thì phép chiếu cuối cùng ở
vế phải không còn tác dụng, ta có thể loại bỏ nó Tức là:
5) Giao hoán phép chọn với các phép toán hai ngôi Phép chọn và tích Descartes có thể được giao hoán bằng các quy tắc sau (cần nhớ rằng thuộc tính Ai thuộc R):
o
Chọn và nối cũng có thể giao hoán
Trang 18Có bốn quy tắc sử dụng heuristic để tái cấu trúc cây:
− Tách các phép toán một ngôi, làm đơn giản biểu thức truy vấn.
− Các phép toán một ngôi trên cùng một quan hệ có thể được nhóm lại,
để chỉ cần truy xuất đến quan hệ một lần.
− Các phép toán một ngôi có thể giao hoán với phép toán hai ngôi để cho phép một số phép toán được thực hiện trước (ví dụ phép chọn).
− Các phép toán hai ngôi có thể được sắp xếp lại.
Một thuật toán tái cấu trúc đơn giản được trình bày trong [Ullman, 1982] có sử dụng heuristic, trong đó có áp dụng các phép toán một ngôi (như chọn/ chiếu) càng sớm càng tốt, nhằm làm giảm kích thước của các quan hệ trung gian.
Trang 19PHẦN II : TỐI ƯU HÓA TRUY VẤN PHÂN TÁN
Câu truy vấn thu được từ quá trình phân rã và cục bộ hóa dữ liệu có thể cho thực hiện bằng cách đưa thêm vào các yếu tố truyền tin (communication primitive) một cách có hệ thống Hoán vị thứ tự các phép toán trong câu truy vấn có thể đưa ra nhiều chiến lược truy vấn, tìm ra một cách sắp xếp tối ưu các phép toán cho một câu truy vấn là nhiệm vụ của bộ tối ưu hóa (optimizer).
Chọn một chiến lược tối ưu là một bài toán NP-hard theo số lượng quan
hệ [Ibaraki and Kameda, 1984] Vì thế nhiệm vụ của bộ tối ưu hóa là tìm ra một chiến lược, phương án thực thi tốt, không cần thiết phải tối ưu.
Với đầu vào là câu truy vấn đã được phân rã, cục bộ hóa nhiệm vụ của
bộ tối ưu hóa tìm ra được một chiến lược thực thi câu truy vấn (QEP) đã tối
ưu, gồm các câu truy vấn đại số quan hệ được đặc tả theo các mảnh, và các phép toán truyền dữ liệu, hỗ trợ cho việc thực thi câu truy vấn qua các trạm Việc chọn lựa chiến lược tối ưu nói chung là việc tìm cách tiên đoán được chi phí thực thi và giảm thiểu hàm chi phí.
Nguyên liệu chính của bộ tối ưu hóa dùng để tính chi phí là các số liệu thống kê của các mảnh, các công thức đánh giá lực lượng của các quan hệ trung gian được tạo ra Cần sắp xếp thứ tự các phép toán nối vì lý do nó là bài toán đã hiểu rõ, và các câu truy vấn có chứa phép nối, chọn, chiếu được xem
là loại truy vấn hay gặp, phép nối nửa có tác dụng như thế nào trong việc xử
lý các nối.
II.1. Tối ưu hóa truy vấn
Câu truy vấn cần tối ưu được diễn tả bằng đại số quan hệ trên các quan
hệ CSDL (có thể là các mảnh) Tối ưu hóa truy vấn là quá trình sinh ra một chiến lược thực thi truy vấn QEP.
Trang 20xem là cấu thành bởi ba thành phần: không gian tìm kiếm (search space), mô hình chi phí (cost model), và chiến lược tìm kiếm (search strategy).
Quá trình tối ưu hóa truy vấn Không gian tìm kiếm
Không gian tìm kiếm được xem là tập hợp của các chiến lược phương án thực thi truy vấn khác nhau Để nêu bật các đặc trưng của bộ tối ưu hóa, cần xem xét các cây nối (joint tree) là cây toán tử với các phép toán nối hoặc tích Descartes Việc hoán vị thứ tự nối có ảnh hưởng quan trọng nhất đến hiệu năng của các truy vấn quan hệ.
Với N quan hệ, ta có O(N!) cây nối tương đương Việc đánh giá trong một không gian tìm kiếm lớn có thể mất nhiều thời gian có khi còn lớn hơn cả thời gian thực thi thực sự.
Trang 21Bộ tối ưu hóa tìm cách hạn chế không gian tìm kiếm bằng cách sử dụng các heuristic hay các hạn chế về cây nối Một số heuristic sử dụng: thực hiện phép chọn, chiếu khi truy xuất đến quan hệ cơ sở, hay việc tránh lấy tích Descartes không được chính câu truy vấn yêu cầu Các cây nối quan trọng thường được sử dụng là cây tuyến tính, và cây xum xuê Cây tuyến tính là cây với mỗi nút toán tử có ít nhất một toán hạng là một quan hệ cơ sở Cây xum xuê thì tổng quát hơn, và có thể có các toán tử không có quan hệ cơ sở làm toán hạng (nghĩa là cả hai toán hạng đều là các quan hệ trung gian).
Hai hình thái của các cây nối Trong cây tuyến tính , kích thước của không gian tìm kiếm được rút gọn lại thành O(2N).
Chiến lược tìm kiếm
Chiến lược tìm kiếm quy hoạch động (dynamic programming), với tính chất đơn định (deterministic) Các chiến lược này xây dựng các phương án thực thi bắt đầu từ các quan hệ cơ sở, nối thêm nhiều quan hệ tại mỗi bước cho đến khi thu được các phương án khả thi Chiến lược quy hoạch động xây dựng phương án khả thi theo chiều rộng (breadth first) Còn chiến lược tham lam thì lại xây dựng cây theo chiều sâu (depth first) Các chiến lượng vét cạn này đảm bảo tìm ra được các phương án khả thi với một chi phí chấp nhận được khi số quan hệ trong câu truy vấn không lớn.
Tuy nhiên cách tiếp cận này có chi phí quá cao khi số quan hệ trong câu truy vấn lớn hơn 5 hoặc 6 Do vậy các nghiên cứu gần đây đang tập trung vào
Trang 22giảm độ phức tạp của tối ưu hóa với mục tiêu tìm ra phương án khả thi “tốt”.
Hành động của bộ tối ưu hóa khi áp dụng chiến lược đơn định
Trong [Lanzelotte et al.,1993] đã chứng tỏ bằng thực nghiệm rằng các chiến lược ngẫu nhiên hóa có hiệu năng tốt hơn các chiến lược đơn định khi truy vấn có chứa khá nhiều quan hệ Không giống như các chiến lược đơn định, các chiến lược ngẫu nhiên hóa cho phép bộ tối ưu hóa đánh đổi thời gian tối ưu hóa với thời gian thực thi Chẳng hạn chiến lược ngẫu nhiên hóa, như trong Iterative Improvement [Swami,1989] và Simulated Annealing [Ioannidis and Wong, 1987], tập trung vào việc tìm kiếm lời giải tối ưu xung quanh một số điểm đặc biệt nào đó Chúng không đảm bảo rằng sẽ tìm ra được lời giải tốt nhất nhưng lại tránh được chi phí quá cao của tối ưu hóa (dựa trên việc tiêu dùng bộ nhớ và thời gian) Trước tiên một hoặc nhiều phương án khởi đầuđược xây dựng bởi một chiến lược thiển cận Sau đó thuật toán tìm cách cải thiện các phương án này bằng cách thăm các lân cận (neighbor) của nó Một lân cận thu được bằng việc biến đổi ngẫu nhiên một phương án.
Hành động của bộ tối ưu hóa khi áp dụng chiến lược ngẫu nhiên
Trang 23Mô hình chi phí
Mô hình chí phí của bộ tối ưu hóa gồm có các hàm chi phí để dự đoán chi phí của các toán tử, số liệu thống kê, dữ liệu cơ sở và các công thức để ước lượng tính toán các kích thước kết quả trung gian.
Hàm chi phí:
- Tổng chi phí = chi phí xuất nhập + chi phí CPU + chi phí truyền
- Chi phí CPU = chi phí một lệnh CPU * số lệnh CPU.
- Chi phí xuất nhập = chi phí của một thao tác xuất nhập đĩa * số lần xuất nhập.
- Chi phí truyền = chi phí khởi tạo một thông báo * số thông báo + chi phí truyền một đơn vị dữ liệu * số bytes.
Theo những nghiên cứu ban đầu ta thấy trong mạng WAN:
- Chi phí xử lý cho việc truyền là cao.
- Chi phí cho xử lý cục bộ là thấp.
- Tỷ số giữa hai tác nhân là 20:1.
Trong mạng LAN:
- Chi phí cho xử lý truyền và xử lý cục bộ là gần như nhau.
- Tỷ số giữa hai tác nhân này là 1:1,6.
Khi thời gian đáp ứng truy vấn là hàm mục tiêu của bộ tối ưu hóa, cần phải để ý đến vấn đề xử lý cục bộ song song và truyền song song Công thức tổng quát của thời gian đáp ứng là: Thời gian đáp ứng = thời gian xử lý của CPU + thời gian xuất nhập + thời gian truyền.
Trong đó:
- Thời gian xử lý của CPU = thời gian xử lý một lệnh của CPU * seq_#lệnh.
Trang 24Thí dụ: Minh họa sự khác nhau giữa tổng chi phí và thời gian đáp ứng, trong đó kết quả được trả lời tại trạm 3, dữ liệu được lấy từ trạm 1 và 2 Để đơn giản chúng ta giả sử rằng chỉ xét đến chi phí truyền
Thí dụ về truyền dữ liệu cho một truy vấn Giả sử thời gian truyền một đơn vị dữ liệu và thời gian khởi tạo một thông báo được biểu thị theo đơn vị thời gian, ta có:
- Tổng thời gian = 2 * thời gian khởi tạo một thông báo + thời gian truyền một đơn vị dữ liệu *(x+y).
- Thời gian đáp ứng = max(thời gian khởi tạo một thông báo + thời gian truyền một đơn vị dữ liệu * x, thời gian khởi tạo một thông báo + thời gian truyền một đơn vị dữ liệu * y).
Trang 25Thời gian đáp ứng tối thiểu đạt được bằng cách tăng mức độ xử lý song song, tuy nhiên không đồng nghĩa với tổng chi phí là tối thiểu, ngược lại tổng chi phí có thể tăng khi có nhiều xử lý cục bộ và truyền song song hơn.
Số liệu thống kê cho việc tối ưu
Tác nhân ảnh hưởng hiệu quả hoạt động của chiến lược thực thi là kích thước của các quan hệ trung gian Cần phải ước lượng kích thước của quan
hệ trung gian nhằm làm giảm lượng dữ liệu phải truyền từ trạm này qua trạm khác trong quá trình thực hiện truy vấn Việc ước lượng này được thực hiện dựa trên các thông số thống kê về quan hệ cơ sở và các công thức dự đoán lực lượng của các kết quả Tuy nhiên độ chính xác của các số liệu thống
kê càng cao thì chi phí dành cho việc duy trì quản lý chúng càng cao Với mỗi quan hệ R[ A 1 , A 2 , , A n ] được phân mảnh là R 1 , R 2 , ,R r ta có:
- Độ dài (số byte) của mỗi thuộc tính là: length( A i ).
- Số lượng các giá trị phân biệt (distinct value) của mỗi thuộc tính
- Ứng với miền của mỗi thuộc tính có các giá trị lớn nhất và nhỏ nhất: max(A i ) và min(A i ).
Với miền của mỗi thuộc tính ta có :
- Lực lượng của miền: card(dom [ A i ]).
- Số lượng của các bộ trong mỗi mảnh: card( R i ).
- Hệ số chọn nối (join selectivity factor) là tỷ lệ các bộ tham gia vào nối, là có giá trị nằm trong khoảng [0…1]: