Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2
Số trang: 51
Loại file: pdf
Dung lượng: 310.97 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
9 Matthias Nicola, Chuyên gia DB2 , IBM Silicon Valley Laboratory Tóm tắt: DB2® 9 đảm bảo lưu trữ pureXML và cung cấp XQuery và SQL/XML như là các ngôn ngữ truy vấn. Các chỉ mục XML rất cần thiết cho hiệu suất truy vấn cao, nhưng việc sử dụng chúng để đánh giá truy vấn phụ thuộc vào cách tạo nên các vị từ truy vấn. Bài viết này trình bày một tập các hướng dẫn để viết các truy vấn XML và tạo các chỉ mục XML một cách phù hợp để cho các chỉ mục tăng tốc...
Nội dung trích xuất từ tài liệu:
Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 9Matthias Nicola, Chuyên gia DB2 , IBM Silicon Valley LaboratoryTóm tắt: DB2® 9 đảm bảo lưu trữ pureXML và cung cấp XQuery và SQL/XMLnhư là các ngôn ngữ truy vấn. Các chỉ mục XML rất cần thiết cho hiệu suất truyvấn cao, nhưng việc sử dụng chúng để đánh giá truy vấn phụ thuộc vào cách tạonên các vị từ truy vấn. Bài viết này trình bày một tập các hướng dẫn để viết cáctruy vấn XML và tạo các chỉ mục XML một cách phù hợp để cho các chỉ mụctăng tốc độ truy vấn của bạn như mong muốn. Ngoài ra học để tìm kiếm trong cáckế hoạch thực hiện truy vấn XML nhằm phát hiện các vấn đề hiệu năng và tìm racách sửa chữa chúng. Một cẩm nang (cheat sheet) có thể tải về tóm tắt cáchướng dẫn quan trọng nhất. [30.07.2009: Bài viết này đã được cập nhật cho DB29.5 và 9.7, trong đó có thêm các truy vấn thí dụ SQL/XML.--Biên tập.]Giới thiệuDB2 9 cung cấp lưu trữ pureXML, cùng với các chỉ mục XML, XQuery vàSQL/XML như ngôn ngữ truy vấn, hỗ trợ lược đồ XML, các mở rộng XML đếncác tiện ích như: Nhập/Xuất và Chạy báo cáo trạng thái (Runstats). Cũng như đốivới các truy vấn quan hệ, các chỉ mục là điều quyết định đối với hiệu suất cao củaXQuery và các câu lệnh SQL/XML của bạn. DB2 cho phép bạn định nghĩa các chỉmục XML với đường dẫn cụ thể trên các cột XML. Điều đó có nghĩa bạn có thể sửdụng chúng để đánh chỉ mục các phần tử và các thuộc tính được chọn, thườngđược sử dụng trong các vị từ và các phép kết nối. Ví dụ, khi sử dụng dữ liệu mẫutrong Hình 1, chỉ mục sau là idx1 sẽ có ích cho việc tìm kiếm bảng và các kết nốidựa vào các định danh (ID) tác giả trên tất cả các tài liệu trong cột XML bookinfocủa bảng books.create table books(bookinfo XML);create index idx1 on books(bookinfo)generate keys using xmlpattern/book/authors/author/@idas sql double;Hình 1. Tài liệu XML thí dụ theo định dạng văn bản (tuần tự) và định dạng(phân cấp) đã được phân tíchDo DB2 không bắt buộc bạn phải kết hợp một lược đồ XML đơn với tất cả các tàiliệu trong một cột XML, các kiểu dữ liệu cho các phần tử và các thuộc tính cụ thểkhông có quyền ưu tiên (a-priori) đã biết. Vì vậy, mỗi chỉ mục XML đòi hỏi bạnphải chỉ định một kiểu đích. Bạn sẽ thấy sau trong bài viết này lí do các kiểu lạiquan trọng. Các kiểu dữ liệu có sẵn cho các chỉ mục XML là: VARCHAR(n): Cho các nút có các giá trị chuỗi có chiều dài tối đa n đã biết. VARCHAR HASHED: Cho các nút có các giá trị chuỗi có độ dài tùy ý. Chỉ mục này có chứa các giá trị băm (hash) của chuỗi thực tế và có thể được sử dụng chỉ cho các vị từ so sánh bằng, không cho vị từ so sánh xếp hạng (range). DOUBLE: Cho các nút có kiểu số bất kỳ. DATE and TIMESTAMP: Cho các nút có các giá trị ngày tháng hoặc dấu thời gian.Chiều dài của một chỉ mục VARCHAR(n) là một sự ràng buộc cứng nhắc. Nếubạn chèn một tài liệu vào chỗ mà ở đó giá trị của một phần tử có chỉ mục hoặcthuộc tính vượt quá độ dài tối đa n, việc chèn sẽ không thành công. Tương tự, câulệnh create index cho một chỉ mục VARCHAR(n) không chạy nếu bắt gặp một giátrị lớn hơn n.Theo mặc định, các kiểu dữ liệu cho các chỉ mục DOUBLE, DATE hoặcTIMESTAMP không phải là một sự ràng buộc khó thực hiện. Ví dụ, chỉ mục idx1trên thuộc tính định danh (ID) tác giả được định nghĩa là DOUBLE vì người tamong ID này có giá trị số. Nếu bạn chèn thêm một tài liệu vào chỗ mà ở đó mộtID của tác giả có giá trị MN127, đây không phải số, tài liệu vẫn được chèn vào,nhưng giá trị MN127 không được thêm vào chỉ mục. Điều này là chính xác vàan toàn vì chỉ mục DOUBLE chỉ có thể đánh giá các vị từ số sẽ không bao giờkhớp với giá trị MN127. Như vậy, giá trị này có thể được loại bỏ khỏi chỉ mụcmột cách an toàn.Từ DB2 9.5 bạn có thể thêm câu tùy chọn REJECT INVALID VALUES vào địnhnghĩa chỉ mục XML của bạn. Câu này buộc tuân theo các kiểu DOUBLE, DATEhoặc TIMESTAMP của các chỉ mục như là một sự ràng buộc cứng nhắc. Nếu bạnđịnh nghĩa chỉ mục sau đây, một tài liệu mà ở đó một định danh (ID) tác giả có giátrị MN127 không thể được bổ sung và cần không có mặt trong cột XML, khibạn tạo chỉ mục này.create index idx1 on books(bookinfo)generate keys using xmlpattern/book/authors/author/@idas sql double REJECT INVALID VALUES;Bạn có thể tìm thấy thêm các chi tiết về định nghĩa các chỉ mục XML trong DB2pureXML Cookbook. Trong thảo luận sau đây về cách sử dụng chỉ mục XMLchúng tôi cũng giả định rằng bạn đã quen thuộc với các khái niệm cơ bản về truyvấn dữ liệu XML trong DB2. Để biết thêm thông tin, tham khảo các bài viết trướcđây, Query DB2 XML Data with SQL (Truy vấn dữ liệu XML DB2 với SQL)(developerWorks, 03.2006) và Query DB2 XML data with XQuery (Truy vấndữ liệu XML DB2 với Xquery) (developerWorks, 04.2006) cho một sự khởi đầu,cũng như pureXML in DB2 9: Which way t ...
Nội dung trích xuất từ tài liệu:
Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 9Matthias Nicola, Chuyên gia DB2 , IBM Silicon Valley LaboratoryTóm tắt: DB2® 9 đảm bảo lưu trữ pureXML và cung cấp XQuery và SQL/XMLnhư là các ngôn ngữ truy vấn. Các chỉ mục XML rất cần thiết cho hiệu suất truyvấn cao, nhưng việc sử dụng chúng để đánh giá truy vấn phụ thuộc vào cách tạonên các vị từ truy vấn. Bài viết này trình bày một tập các hướng dẫn để viết cáctruy vấn XML và tạo các chỉ mục XML một cách phù hợp để cho các chỉ mụctăng tốc độ truy vấn của bạn như mong muốn. Ngoài ra học để tìm kiếm trong cáckế hoạch thực hiện truy vấn XML nhằm phát hiện các vấn đề hiệu năng và tìm racách sửa chữa chúng. Một cẩm nang (cheat sheet) có thể tải về tóm tắt cáchướng dẫn quan trọng nhất. [30.07.2009: Bài viết này đã được cập nhật cho DB29.5 và 9.7, trong đó có thêm các truy vấn thí dụ SQL/XML.--Biên tập.]Giới thiệuDB2 9 cung cấp lưu trữ pureXML, cùng với các chỉ mục XML, XQuery vàSQL/XML như ngôn ngữ truy vấn, hỗ trợ lược đồ XML, các mở rộng XML đếncác tiện ích như: Nhập/Xuất và Chạy báo cáo trạng thái (Runstats). Cũng như đốivới các truy vấn quan hệ, các chỉ mục là điều quyết định đối với hiệu suất cao củaXQuery và các câu lệnh SQL/XML của bạn. DB2 cho phép bạn định nghĩa các chỉmục XML với đường dẫn cụ thể trên các cột XML. Điều đó có nghĩa bạn có thể sửdụng chúng để đánh chỉ mục các phần tử và các thuộc tính được chọn, thườngđược sử dụng trong các vị từ và các phép kết nối. Ví dụ, khi sử dụng dữ liệu mẫutrong Hình 1, chỉ mục sau là idx1 sẽ có ích cho việc tìm kiếm bảng và các kết nốidựa vào các định danh (ID) tác giả trên tất cả các tài liệu trong cột XML bookinfocủa bảng books.create table books(bookinfo XML);create index idx1 on books(bookinfo)generate keys using xmlpattern/book/authors/author/@idas sql double;Hình 1. Tài liệu XML thí dụ theo định dạng văn bản (tuần tự) và định dạng(phân cấp) đã được phân tíchDo DB2 không bắt buộc bạn phải kết hợp một lược đồ XML đơn với tất cả các tàiliệu trong một cột XML, các kiểu dữ liệu cho các phần tử và các thuộc tính cụ thểkhông có quyền ưu tiên (a-priori) đã biết. Vì vậy, mỗi chỉ mục XML đòi hỏi bạnphải chỉ định một kiểu đích. Bạn sẽ thấy sau trong bài viết này lí do các kiểu lạiquan trọng. Các kiểu dữ liệu có sẵn cho các chỉ mục XML là: VARCHAR(n): Cho các nút có các giá trị chuỗi có chiều dài tối đa n đã biết. VARCHAR HASHED: Cho các nút có các giá trị chuỗi có độ dài tùy ý. Chỉ mục này có chứa các giá trị băm (hash) của chuỗi thực tế và có thể được sử dụng chỉ cho các vị từ so sánh bằng, không cho vị từ so sánh xếp hạng (range). DOUBLE: Cho các nút có kiểu số bất kỳ. DATE and TIMESTAMP: Cho các nút có các giá trị ngày tháng hoặc dấu thời gian.Chiều dài của một chỉ mục VARCHAR(n) là một sự ràng buộc cứng nhắc. Nếubạn chèn một tài liệu vào chỗ mà ở đó giá trị của một phần tử có chỉ mục hoặcthuộc tính vượt quá độ dài tối đa n, việc chèn sẽ không thành công. Tương tự, câulệnh create index cho một chỉ mục VARCHAR(n) không chạy nếu bắt gặp một giátrị lớn hơn n.Theo mặc định, các kiểu dữ liệu cho các chỉ mục DOUBLE, DATE hoặcTIMESTAMP không phải là một sự ràng buộc khó thực hiện. Ví dụ, chỉ mục idx1trên thuộc tính định danh (ID) tác giả được định nghĩa là DOUBLE vì người tamong ID này có giá trị số. Nếu bạn chèn thêm một tài liệu vào chỗ mà ở đó mộtID của tác giả có giá trị MN127, đây không phải số, tài liệu vẫn được chèn vào,nhưng giá trị MN127 không được thêm vào chỉ mục. Điều này là chính xác vàan toàn vì chỉ mục DOUBLE chỉ có thể đánh giá các vị từ số sẽ không bao giờkhớp với giá trị MN127. Như vậy, giá trị này có thể được loại bỏ khỏi chỉ mụcmột cách an toàn.Từ DB2 9.5 bạn có thể thêm câu tùy chọn REJECT INVALID VALUES vào địnhnghĩa chỉ mục XML của bạn. Câu này buộc tuân theo các kiểu DOUBLE, DATEhoặc TIMESTAMP của các chỉ mục như là một sự ràng buộc cứng nhắc. Nếu bạnđịnh nghĩa chỉ mục sau đây, một tài liệu mà ở đó một định danh (ID) tác giả có giátrị MN127 không thể được bổ sung và cần không có mặt trong cột XML, khibạn tạo chỉ mục này.create index idx1 on books(bookinfo)generate keys using xmlpattern/book/authors/author/@idas sql double REJECT INVALID VALUES;Bạn có thể tìm thấy thêm các chi tiết về định nghĩa các chỉ mục XML trong DB2pureXML Cookbook. Trong thảo luận sau đây về cách sử dụng chỉ mục XMLchúng tôi cũng giả định rằng bạn đã quen thuộc với các khái niệm cơ bản về truyvấn dữ liệu XML trong DB2. Để biết thêm thông tin, tham khảo các bài viết trướcđây, Query DB2 XML Data with SQL (Truy vấn dữ liệu XML DB2 với SQL)(developerWorks, 03.2006) và Query DB2 XML data with XQuery (Truy vấndữ liệu XML DB2 với Xquery) (developerWorks, 04.2006) cho một sự khởi đầu,cũng như pureXML in DB2 9: Which way t ...
Tìm kiếm theo từ khóa liên quan:
quản trị dữ liệu lập trình XML ngôn ngữ SQL data base hệ quản trị lưu trữ dữ liệu bộ nhớGợi ý tài liệu liên quan:
-
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 290 1 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 278 2 0 -
8 trang 248 0 0
-
6 trang 152 0 0
-
Hướng dẫn tạo file ghost và bung ghost
12 trang 143 0 0 -
Hướng dẫn sử dụng Mapinfo Professional-Phần cơ bản
57 trang 82 0 0 -
Phát triển Java 2.0: Phân tích dữ liệu lớn bằng MapReduce của Hadoop
12 trang 69 0 0 -
Giáo trình Điện toán đám mây (Xuất bản lần thứ hai): Phần 1
64 trang 64 0 0 -
Đồ án tốt nghiệp ngành Công nghệ thông tin: Áp dụng các kỹ thuật trong big data vào lưu trữ dữ liệu
96 trang 62 1 0 -
150 trang 59 0 0