Tối ƣu hóa truy vấn XQuery

Một phần của tài liệu Phần mềm soạn thảo và tổ chức ngân hàng câu hỏi cho trắc nghiệm theo chuẩn QTI (Trang 56 - 57)

Cú pháp phức hợp và lồng nhau của Xquery làm cho nó có khả năng biểu diễn cao hơn XPath, sự phong phú ngữ nghĩa này cũng làm tăng độ phức tạp khi tối ƣu hóa và tính toán truy vấn XQuery.

Mặc dù truy vấn XQuery có thể đƣợc tính toán theo cách đơn giản lần lƣợt từng điều khoản, dùng các thủ tục vòng lặp lồng nhau theo đúng cú pháp.

Đã có nhiều nghiên cứu để phát triển trình tối ƣu hóa XQuery thông minh. Tính toán mẫu phân nhánh là phần căn bản trong kế hoạch tính toán mà trình tối ƣu XQuery sinh ra. Lý do là các truy vấn XQuery sử dụng biểu thức XPath, về căn bản đó là một đƣờng dẫn hay mẫu phân nhánh, trong dạng FLWOR để buộc hay tác động vào các biến nút. Tuy nhiên, khác với XPath, XQuery làm nhiều hơn là tính toán một mẫu phân nhánh đơn giản. Nói cụ thể hơn:

- Trả lời một truy vấn XQuery có thể gồm tính toán nhiều mẫu phân nhánh trong khi truy vấn XPath chỉ tính toán một đƣờng dẫn. Để tối ƣu, số lƣợng các mẫu phân nhánh trong tính toán các truy vấn XQuery nên là cực tiểu. tránh lặp lại cùng biểu thức đƣờng dẫn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-Mẫu phân nhánh có trong các truy vấn XQuery thƣờng gồm nhiều hơn một nút output trong khi mẫu phân nhánh của một truy vấn Xpath chỉ có một nút kết quả ra.

-Tính toán mẫu phân nhánh không phải là phép toán duy nhất để tính toán các truy vấn Xquery. Để nhận đƣợc kết quả truy vấn đúng đắn, các phép toán khác ví dụ nhƣ group-by cũng phải đƣợc thực hiện sau khi so khớp mẫu phân nhánh.

- Cuối cùng, kết quả truy vấn cần phải định dạng thành XML, theo đặc tả trong điều khoản Return.

Một phần của tài liệu Phần mềm soạn thảo và tổ chức ngân hàng câu hỏi cho trắc nghiệm theo chuẩn QTI (Trang 56 - 57)