Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 doc

51 298 0
Khai thác các chỉ mục XML để tăng hiệu năng truy vấn XML trong DB2 doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Khai thác mục XML để tăng hiệu truy vấn XML DB2 Matthias Nicola, Chuyên gia DB2 , IBM Silicon Valley Laboratory Tóm tắt: DB2® đảm bảo lưu trữ pureXML cung cấp XQuery SQL/XML ngôn ngữ truy vấn Các mục XML cần thiết cho hiệu suất truy vấn cao, việc sử dụng chúng để đánh giá truy vấn phụ thuộc vào cách tạo nên vị từ truy vấn Bài viết trình bày tập hướng dẫn để viết truy vấn XML tạo mục XML cách phù hợp mục tăng tốc độ truy vấn bạn mong muốn Ngồi học để tìm kiếm kế hoạch thực truy vấn XML nhằm phát vấn đề hiệu tìm cách sửa chữa chúng Một "cẩm nang" ("cheat sheet") tải tóm tắt hướng dẫn quan trọng [30.07.2009: Bài viết cập nhật cho DB2 9.5 9.7, có thêm truy vấn thí dụ SQL/XML. Biên tập.] Giới thiệu DB2 cung cấp lưu trữ pureXML, với mục XML, XQuery SQL/XML ngôn ngữ truy vấn, hỗ trợ lược đồ XML, mở rộng XML đến tiện ích như: Nhập/Xuất Chạy báo cáo trạng thái (Runstats) Cũng truy vấn quan hệ, mục điều định hiệu suất cao XQuery câu lệnh SQL/XML bạn DB2 cho phép bạn định nghĩa mục XML với đường dẫn cụ thể cột XML Điều có nghĩa bạn sử dụng chúng để đánh mục phần tử thuộc tính chọn, thường sử dụng vị từ phép kết nối Ví dụ, sử dụng liệu mẫu Hình 1, mục sau idx1 có ích cho việc tìm kiếm bảng kết nối dựa vào định danh (ID) tác giả tất tài liệu cột XML bookinfo bảng books create table books(bookinfo XML); create index idx1 on books(bookinfo) generate keys using xmlpattern '/book/authors/author/@id' as sql double; Hình Tài liệu XML thí dụ theo định dạng văn (tuần tự) định dạng (phân cấp) phân tích Do DB2 khơng bắt buộc bạn phải kết hợp lược đồ XML đơn với tất tài liệu cột XML, kiểu liệu cho phần tử thuộc tính cụ thể khơng có quyền ưu tiên (a-priori) biết Vì vậy, mục XML địi hỏi bạn phải định kiểu đích Bạn thấy sau viết lí kiểu lại quan trọng Các kiểu liệu có sẵn cho mục XML là:  VARCHAR(n): Cho nút có giá trị chuỗi có chiều dài tối đa n biết  VARCHAR HASHED: Cho nút có giá trị chuỗi có độ dài tùy ý Chỉ mục có chứa giá trị băm (hash) chuỗi thực tế sử dụng cho vị từ so sánh bằng, không cho vị từ so sánh xếp hạng (range)  DOUBLE: Cho nút có kiểu số  DATE and TIMESTAMP: Cho nút có giá trị ngày tháng dấu thời gian Chiều dài mục VARCHAR(n) ràng buộc cứng nhắc Nếu bạn chèn tài liệu vào chỗ mà giá trị phần tử có mục thuộc tính vượt q độ dài tối đa n, việc chèn không thành công Tương tự, câu lệnh create index cho mục VARCHAR(n) không chạy bắt gặp giá trị lớn n Theo mặc định, kiểu liệu cho mục DOUBLE, DATE TIMESTAMP ràng buộc khó thực Ví dụ, mục idx1 thuộc tính định danh (ID) tác giả định nghĩa DOUBLE người ta mong ID có giá trị số Nếu bạn chèn thêm tài liệu vào chỗ mà ID tác giả có giá trị "MN127", khơng phải số, tài liệu chèn vào, giá trị " MN127" không thêm vào mục Điều xác an tồn mục DOUBLE đánh giá vị từ số không khớp với giá trị "MN127" Như vậy, giá trị loại bỏ khỏi mục cách an toàn Từ DB2 9.5 bạn thêm câu tùy chọn REJECT INVALID VALUES vào định nghĩa mục XML bạn Câu buộc tuân theo kiểu DOUBLE, DATE TIMESTAMP mục ràng buộc cứng nhắc Nếu bạn định nghĩa mục sau đây, tài liệu mà định danh (ID) tác giả có giá trị "MN127" khơng thể bổ sung cần khơng có mặt cột XML, bạn tạo mục create index idx1 on books(bookinfo) generate keys using xmlpattern '/book/authors/author/@id' as sql double REJECT INVALID VALUES; Bạn tìm thấy thêm chi tiết định nghĩa mục XML "DB2 pureXML Cookbook" Trong thảo luận sau cách sử dụng mục XML giả định bạn quen thuộc với khái niệm truy vấn liệu XML DB2 Để biết thêm thông tin, tham khảo viết trước đây, "Query DB2 XML Data with SQL" (Truy vấn liệu XML DB2 với SQL) (developerWorks, 03.2006) "Query DB2 XML data with XQuery" (Truy vấn liệu XML DB2 với Xquery) (developerWorks, 04.2006) cho khởi đầu, "pureXML in DB2 9: Which way to query your XML data?" (pureXML DB2 9: Dùng cách để truy vấn liệu XML bạn) (developerWorks, 06.2006) với nhiều ví dụ chi tiết Tính hợp lệ mục XML câu lệnh XQuery SQL/XML Cũng truy vấn quan hệ, mục điều định đảm bảo hiệu cao câu lệnh XQuery SQL/XML bạn Khi ứng dụng bạn trình truy vấn quan hệ hay truy vấn XML cho DB2, trình biên dịch truy vấn so sánh vị từ truy vấn với định nghĩa mục có định xem sử dụng mục có sẵn để thực truy vấn khơng Q trình gọi "khớp mục" tạo tập (có thể rỗng) mục hợp lệ truy vấn cụ thể Tập đầu vào cho trình tối ưu hóa (optimizer) theo chi phí, định có hay khơng sử dụng mục hợp lệ Trong viết này, tập trung vào khớp mục lựa chọn mục trình tối ưu hóa Khơng có nhiều thứ mà bạn làm với định trình tối ưu hóa, trừ chạy "runstats" để đảm bảo trình tối ưu hóa với thống kê xác liệu bạn Tuy nhiên, có nhiều thứ mà bạn làm để đảm bảo khớp mục Khớp mục thường dễ kiểu quan hệ DB2 sử dụng mục định nghĩa cột quan hệ để trả lời vị từ hay vị từ xếp hạng cột Tuy nhiên, với cột XML điều phức tạp Trong mục cột quan hệ chứa tất giá trị từ cột đó, mục XML chứa giá trị nút mà khớp hai mẫu XML kiểu liệu XML định nghĩa mục Vì thế, mục XML dùng để đánh giá vị từ truy vấn XML mục có kiểu liệu "đúng" chứa tất nút XML thỏa mãn vị từ Do đó, có hai yêu cầu quan trọng để lựa chọn mục XML: Định nghĩa mục XML hạn chế vị từ truy vấn (bao hàm - "containment") Kiểu liệu mục khớp với kiểu liệu vị từ truy vấn Bài viết giải thích cách thiết kế mục XML truy vấn bạn để đảm bảo yêu cầu đáp ứng cách tránh cạm bẫy phổ biến Điều bắt đầu với hiểu biết kế hoạch thực truy vấn bạn Các cơng cụ giải thích có DB2, chẳng hạn Visual Explain (Giải thích trực quan) db2exfmt, sử dụng để xem kế hoạch thực truy vấn XQuery SQL/XML giống chúng làm cho SQL truyền thống Đánh giá truy vấn XML: Các kế hoạch thực toán tử Để thực truy vấn XML, DB2 giới thiệu ba toán tử truy vấn bên mới, gọi XSCAN, XISCAN XANDOR Cùng với tốn tử truy vấn có (như TBSCAN, FETCH SORT) toán tử cho phép DB2 tạo kế hoạch thực cho SQL/XML XQueries Bây xem xét ba toán tử cách chúng làm việc với mục XML kế hoạch thực truy vấn XSCAN (XML Document Scan-Quét tài liệu XML) DB2 sử dụng toán tử XSCAN để nghiên cứu tài liệu XML cần, để đánh giá vị từ trích đoạn tài liệu giá trị XSCAN "hoạt động quét bảng XML" xuất kế hoạch thực sau việc quét bảng xử lý tài liệu XISCAN (XML Index Scan-Quét mục XML) Cũng giống toán tử quét mục quan hệ có cho mục quan hệ (XSCAN), toán tử XISCAN thực việc tra cứu quét mục XML XISCAN lấy vị từ giá trị làm đầu vào, chẳng hạn cặp đường dẫn- giá trị /book[price = 29] where $i/book/price = 29 Nó trả tập định danh (ID) hàng định danh nút Các ID hàng rõ hàng có chứa tài liệu đủ tiêu chuẩn ID nút rõ nút đủ tiêu chuẩn tài liệu XANDOR (XML Index AND'ing-AND mục XML) Toán tử XANDOR đánh giá đồng thời hai nhiều vị từ bằng cách điều khiển nhiều XISCAN Nó trả ID hàng tài liệu đáp ứng tất vị từ Bây xem xét truy vấn mẫu (trong ký hiệu XQuery SQL/XML tương đương) để hiểu kế hoạch thực khơng có mục, có mục có nhiều mục: XQuery: xquery for $i in db2fn:xmlcolumn("BOOKS.BOOKINFO") where $i/book/title = "Database systems" and $i/book/price = 29 return $i/book/authors; SQL/XML: select XMLQUERY('$i/book/authors' passing bookinfo as "i") from books where XMLEXISTS('$i/book[title = "Database systems" and price = 29]' passing bookinfo as "i"); Two Indexes: create index idx1 on books(bookinfo) generate keys using xmlpattern '/book/title' as sql varchar(50); create index idx2 on books(bookinfo) generate keys using xmlpattern '/book/price' as sql double; Trong Hình 2, bạn thấy ba kế hoạch thực khác cho truy vấn (đơn giản hóa kết đầu từ db2exfmt) Tốt đọc kế hoạch thực từ toán tử bên trái thấp đó, luồng logic kế hoạch từ đáy lên đỉnh từ trái sang phải Kế hoạch tận bên trái (a) sử dụng khơng có mục hợp lệ cho vị từ truy vấn Toán tử quét bảng (TBSCAN) đọc tất hàng từ bảng "BOOKS" Đối với hàng, toán tử kết nối lặp lồng (NLJOIN) chuyển trỏ tới tài liệu XML tương ứng với tốn tử XSCAN Như vậy, NLJOIN khơng hành động phép kết nối kinh điển với hai chân đầu vào, tạo điều kiện truy cập liệu XML cho toán tử XSCAN Toán tử XSCAN duyệt tài liệu, đánh giá vị từ trích từ phần tử tác giả ("authors") vị từ thỏa mãn Tốn tử RETURN hồn thành việc thực truy vấn trả kết truy vấn tới API Hình Ba kế hoạch thực (a) khơng có mục nào, (b) mục, (c) hai mục Nếu bạn có mục cho hai vị từ, ví dụ mục idx1 /book/price, bạn thấy kế hoạch thực tương tự kế hoạch (b) Hình XISCAN khảo sát kỹ mục với cặp đường dẫn-giá trị (/book/price, 29) trả ID hàng cho tài liệu có giá 29 Các ID hàng xếp để loại bỏ hàng trùng lặp (nếu có) tối ưu hóa I/O vào bảng Toán tử quét ID hàng (RIDSCN) quét ID hàng, kích hoạt hàng, chuyển ID hàng đến toán tử FETCH Đối với ID hàng, toán tử FETCH đọc hàng tương ứng từ bảng Lợi ích kế hoạch có phần nhỏ số hàng bảng lấy ra, có nghĩa hàng mà "giá" 29 Cách làm lợi so với việc quét toàn bảng để đọc hàng Đối với hàng lấy về, toán tử XSCAN xử lý tài liệu XML tương ứng Nó đánh giá vị từ theo "tiêu đề" ("title") vị từ thỏa mãn, trích phần tử "authors" Có thể có nhiều tài liệu mà vị từ thứ hai không XSCAN thực nhiều cơng việc để loại chúng Vì thế, chí bạn thấy hiệu tốt vị từ thứ hai dùng mục Nếu bạn có mục cho hai vị từ bạn xem kế hoạch thực (c) Hình Kế hoạch sử dụng hai XISCAN, cho vị từ mục Toán tử XANDOR sử dụng XISCAN để khảo sát luân phiên hai mục để tìm ID hàng tài liệu khớp với hai cách hiệu Toán tử FETCH sau lấy hàng này, giảm thiểu I/O đến bảng Đối với tài liệu, XSCAN trích phần tử "authors" Nếu vị từ bạn bao gồm // * đường dẫn bạn sử dụng phép so sánh thứ hạng (như < >), bạn thấy toán tử VÀ (AND) (IXAND) mục, thay cho XANDOR Điều hợp lý là, hai thực nhiệm vụ với kiểu vị từ khác với việc tối ưu khác Trình tối ưu hóa định khơng sử dụng mục cần dùng Ví dụ, trình tối ưu hóa chọn kế hoạch (b) kế hoạch (c) mục thứ hai không làm giảm đáng kể số hàng lấy từ bảng, chẳng hạn chi phí truy cập mục lớn chi phí lợi I/O đến bảng Tuy Đánh mục nút văn bước XPath "/text()" Nhắc lại khái niệm nút văn Hình cho thấy tài liệu thí dụ định dạng phân cấp mơ hình liệu XML Mỗi nút phần tử mơ tả phần tử nút văn mô tả giá trị liệu thực tế Trong mô hình liệu XML, giá trị phần tử định nghĩa móc nối tất nút văn phần tử Như vậy, giá trị phần tử "book" Các hệ thống sở liệu 29 ("Database Systems29") Giá trị phần tử mức thấp với nút văn nó, ví dụ giá trị phần tử "giá" "29" Hình Mơ hình liệu XML tài liệu thí dụ Database Systems 29 Các biểu thức /book/price /book/price/text() khác Cái đầu nhận dạng nút phần tử "price", sau trỏ đến nút văn có giá trị "29" Do đó, hai truy vấn sau trả kết khác XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book return $b/price XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book return $b/price/text() Truy vấn trả nút phần tử đầy đủ, tức 29, truy vấn thứ hai trả giá trị nút văn 29 Nếu biểu thức XPath không sử dụng /text() vị từ truy vấn, chẳng hạn $b/book truy vấn sau, DB2 tự động sử dụng giá trị phần tử để đánh giá vị từ Do giá trị phần tử "book" "Database Systems29", truy vấn trả tài liệu thí dụ khớp hợp lệ XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO") where $b/book = "Database Systems29" return $b Tuy nhiên, truy vấn tiếp theo, bạn thêm /text() tvào đường dẫn mệnh đề where, khơng trả tài liệu thí dụ bạn Điều khơng có nút văn phần "book" XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO") where $b/book/text()= "Database Systems29" return $b Vì thế, trường hợp chung, ngữ nghĩa truy vấn khác tùy thuộc vào việc sử dụng /text() Các phần tử mức thấp mà có nút văn đơn hiển thị hành vi, có khơng có /text() Ví dụ, hai truy vấn trả kết nhau, bắt gặp tất các phần tử "price" trình thực truy vấn có nút văn đơn khơng có nút khác XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO") where $b/book/price < 10 return $b XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO") where $b/book/price/text() < 10 return $b Do /text() thường tạo khác biệt ngữ nghĩa truy vấn, tạo khác biệt tính hợp lệ mục Trong Bảng bạn thấy vị từ với /text() đánh giá mục định rõ /text() mẫu XML Nếu mục bạn không dùng /text(), vị từ bạn không nên sử dụng /text() Bảng Các mục vị từ có khơng có /text() Định nghĩa vị từ hay mục .using xmlpattern .using xmlpattern '/book/title/text()' as sql '/book/title' as sql varchar(128); varchar(128); - + + - where $i/book/title = "Database Systems" where $i/book/title/text() = "Database Systems" Để đơn giản khuyên bạn không sử dụng /text() định nghĩa mục XML vị từ truy vấn Có thể tạm thời định nghĩa mục mẫu XML //text() để hỗ trợ vị từ cho biểu thức đường dẫn kết thúc /text() Tuy nhiên, mục có chứa tất giá trị nút văn từ tất tài liệu cột XML Do đó, mục lớn tốn cho việc bảo trì chèn, cập nhật xóa Nói chung bạn nên tránh mục vậy, trừ ứng dụng bạn chủ yếu đọc bạn thực khơng thể dự đốn phần tử sử dụng điều kiện tìm kiếm Đánh mục phần tử Trong phần trước, bạn thấy vị từ phần tử /book gọi phần tử (hay khơng ngun tử), có chứa phần tử khác Mặc dù bạn định nghĩa mục phần tử lá, chúng có ích số trường hợp Xem xét tài liệu XML sau Một mục mẫu XML /book chứa điểm vào mục cho tài liệu giá trị điểm vào mục "John DoePeter PanDatabase Systems29SQLrelational." Điều khơng có ích truy vấn điển hình không sử dụng giá trị kết nối vị từ chúng Hầu hết mục luôn phần tử John Doe Peter Pan Database Systems 29 SQL relational Có vài trường hợp, mục phần tử khơng phải có ý nghĩa Ví dụ, giả sử truy vấn bạn có chứa vị từ mã vùng số điện thoại đầy đủ Trong trường hợp đó, bạn chọn để thiết kế phần tử điện thoại bạn hiển thị tài liệu John Doe 408 4511234 Sau đó, bạn định nghĩa mục XML phần tử "phone" mục phần tử "areacode": create index phoneidx on authors(authorinfo) generate key using xmlpattern '/author/phone' as sql double; create index areaidx on authors(authorinfo) generate key using xmlpattern '/author/phone/areacode' as sql double; Điều cho phép hai truy vấn sau sử dụng truy cập đánh mục, thay cho việc quét bảng select authorinfo from authors where xmlexists('$a/author[phone=4084511234]' passing authorinfo as "a"); select authorinfo from authors where xmlexists('$a/author[phone/areacode=408]' passing authorinfo as "a"); Các mục XML mục khóa ghép mục quan hệ nhiều cột Tức là, bạn định nghĩa mục đơn hai hay nhiều mẫu XML Tuy nhiên, đơi bắt chước mục ghép, phần tử bạn lồng thích hợp Ví dụ, mục phoneidx hành động giống mục ghép /phone/areacode /phone/number Trường hợp đặc biệt, khơng thể sử dụng mục XML Các trường hợp đặc biệt với XMLQUERY XMLEXISTS Tất hướng dẫn thảo luận để tính hợp lệ mục áp dụng cho hai truy vấn XQuery XML SQL/XML Ngồi ra, có số lý cân nhắc cụ thể cho hàm SQL/XML XMLQUERY XMLEXISTS Nếu bạn sử dụng vị từ XML hàm XMLQUERY mệnh đề select câu lệnh SQL, vị từ không loại trừ hàng từ tập kết khơng thể sử dụng mục Chúng áp dụng cho tài liệu lúc trả đoạn (có thể rỗng) tài liệu Vì vậy, bạn nên đặt vị từ tài liệu lọc-hàng vào vị từ XMLEXISTS mệnh đề where câu lệnh SQL/XML bạn Khi bạn biểu diễn vị từ XMLEXISTS, chắn bạn sử dụng dấu ngoặc vuông $a/author[phone=4084511234] $a/author/phone=4084511234 Cái sau hai vị từ vị từ Boolean trả "sai" phần tử phone khơng có giá trị mong muốn Do XMLEXISTS thật kiểm tra tồn giá trị, tồn giá trị "sai" thỏa mãn XMLEXISTS cho tài liệu hợp lệ cho tập kết Nếu bạn sử dụng dấu ngoặc vuông, biểu thức XPath đánh giá chuỗi rỗng, mà thất bại thử nghiệm tồn loại bỏ hàng tương ứng (nếu tài liệu khơng có số điện thoại mong muốn) Để biết thêm ví dụ chi tiết ngữ nghĩa XMLQUERY XMLEXISTS, tham khảo " 15 cách thực hành tốt để thực pureXML DB2 9" (developerWorks, 10.2006) Các mệnh đề let return Nên biết vị từ mệnh đề let return XQuery không lọc tập kết Vì vậy, khơng thể trơng mong sử dụng mục cần kiến thiết phần tử Hai truy vấn sử dụng mục phần tử "phone408" cần phải trả cho tác giả, phần tử rỗng cho tác giả bên mã vùng 408 XQUERY for $a in db2fn:xmlcolumn("AUTHORS.AUTHORINFO")/author let $p := $a/phone[areacode="408"]//text() return {$p} XQUERY for $a in db2fn:xmlcolumn("AUTHORS.AUTHORINFO")/author return {$a/phone[areacode="408"]//text()} Các bước cha mẹ DB2 không sử dụng mục cho vị từ xảy bước cha mẹ (" "), vị từ theo "price" hai truy vấn sau đây: XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book/title[ /price < 10] return $b XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book/title where $b/ /price < 10 return $b Đây hạn chế có ý nghĩa bạn ln biểu thị vị từ mà khơng có trục cha mẹ: XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book[price < 10]/title return $b XQUERY for $b in db2fn:xmlcolumn("BOOKS.BOOKINFO")/book where $b/price < 10 return $b/title Một trường hợp đặc biệt với hai dấu gạch chéo (//) Một trường hợp khác cần ý bạn sử dụng vị từ với trục cháu trục, thường viết tắt // Giả sử bạn muốn tìm sách cho tác giả có ID 129 Nếu thuộc tính ID tác giả xuất nhiều mức bạn không chắn mức phần tử có đặt thuộc tính ID, bạn viết câu truy vấn khơng thích hợp sau đây: SAI! select bookinfo from books where XMLEXISTS('$b/book/authors[//@id = 129]' passing bookinfo as "b") Mục đích truy vấn để kiểm tra thuộc tính ID đâu phần tử "authors" Tuy nhiên, dấu gạch chéo dấu gạch chéo đơi (/ //) phía trước vị từ dấu ngoặc vuông không thuộc ngữ cảnh hướng đến gốc tài liệu Do đó, truy vấn trả tài liệu sau kết không mong muốn John Doe Peter Pan Database Systems 29 Để tránh điều này, bạn cần phải thêm dấu chấm (cùng trục) biết bạn muốn áp dụng cháu hay trục (//) từ phần tử "authors" trở xuống tài liệu ĐÚNG! select bookinfo from books where XMLEXISTS('$b/book/authors[.//@id = 129]' passing bookinfo as "b") Điều cho phép DB2 sử dụng mục định nghĩa /book//@id hay //@id Khơng có mục sử dụng khơng có dấu chấm Bạn tìm thêm ví dụ cách ngữ nghĩa ngôn ngữ XQuery SQL/XML tác động đến tính hợp lệ mục viết "Trên đường dẫn đến truy vấn XML hiệu quả." Tóm tắt Các mục XML quan trọng để tăng hiệu truy vấn XML ký tự đại diện, vùng tên, kiểu liệu, kết nối, nút văn khía cạnh ngữ nghĩa khác truy vấn XML xác định liệu mục khơng sử dụng Một số ý cần thiết để đảm bảo định nghĩa mục XML vị từ truy vấn tương thích Bài viết trình bày tập hợp hướng dẫn ví dụ biết mục XML sử dụng để tránh việc quét bảng đảm bảo hiệu truy vấn cao Các hướng dẫn quan trọng tóm tắt trang cẩm nang tải ... dụng để xem kế hoạch thực truy vấn XQuery SQL /XML giống chúng làm cho SQL truy? ??n thống Đánh giá truy vấn XML: Các kế hoạch thực toán tử Để thực truy vấn XML, DB2 giới thiệu ba toán tử truy vấn. .. đến truy vấn XML hiệu quả." Tóm tắt Các mục XML quan trọng để tăng hiệu truy vấn XML ký tự đại diện, vùng tên, kiểu liệu, kết nối, nút văn khía cạnh ngữ nghĩa khác truy vấn XML xác định liệu mục. .. trọng để lựa chọn mục XML: Định nghĩa mục XML hạn chế vị từ truy vấn (bao hàm - "containment") 2 Kiểu liệu mục khớp với kiểu liệu vị từ truy vấn Bài viết giải thích cách thiết kế mục XML truy vấn

Ngày đăng: 07/08/2014, 09:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan