Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Các khái niệm cơ bản của DB2: Giới thiệu các bảng truy vấn cụ thể hóa Roman Melnyk, Phát triển thông
Nội dung xem thử
Mô tả chi tiết
Các khái niệm cơ bản của DB2: Giới thiệu các bảng truy vấn cụ thể hóa
Roman Melnyk, Phát triển thông tin DB2
Tóm tắt: Định nghĩa bảng truy vấn cụ thể hóa (MQT) dựa trên kết quả của một
truy vấn. MQT có thể cải thiện đáng kể hiệu suất của truy vấn. Bài viết này giới
thiệu cho bạn các MQT, các bảng tóm tắt, và bảng phân tầng, và bằng các ví dụ
đang làm việc, chỉ cho bạn cách để xây dựng và chạy các bảng truy vấn được cụ
thể hóa.
Bảng truy vấn cụ thể hóa (MQT) là một bảng được xác định dựa trên kết quả của
một truy vấn. Các dữ liệu được chứa trong MQT có nguồn gốc từ một hoặc nhiều
bảng mà dựa vào chúng, người ta cụ thể hoá định nghĩa của bảng truy vấn. Bảng
Tóm tắt (hoặc bảng tóm tắt tự động, AST), quen thuộc với những người sử dụng
cơ sở dữ liệu thông dụng DB2 (UDB) của IBM trong Linux, UNIX, và Windows
(DB2 UDB), được coi là dạng đặc biệt của MQT. Việc chọn đầy đủ là một phần
của định nghĩa của một bảng tóm tắt, chứa mệnh đề GROUP BY để tổng hợp dữ
liệu từ các bảng được tham chiếu trong câu chọn này.
Bạn có thể nghĩ MQT như một loại khung nhìn cụ thể hóa. Cả khung nhìn lẫn các
MQT được xác định dựa trên một truy vấn. Truy vấn mà trên đó khung nhìn dựa
vào được chạy bất cứ khi nào một khung nhìn được tham chiếu; tuy nhiên, trên
thực tế MQT lưu giữ các kết quả truy vấn làm dữ liệu, và bạn có thể làm việc với
các dữ liệu ở trong MQT thay vì các dữ liệu ở trong các bảng nêu ra.
Các bảng truy vấn cụ thể hóa có thể cải thiện một cách đáng kể hiệu suất của các
truy vấn, đặc biệt là các truy vấn phức tạp. Nếu như trình tối ưu xác định rằng một
truy vấn hoặc một phần của một truy vấn có thể được giải bằng cách sử dụng một
MQT, thì truy vấn có thể được viết lại để tận dụng lợi thế của MQT này.
Có thể xác định MQT ở thời gian tạo bảng vì được hệ thống hay người dùng duy
trì. Các phần tiếp theo sẽ giới thiệu cho bạn hai loại MQT, cũng như bảng tóm tắt
và bảng phân tầng. Các ví dụ sau đây yêu cầu kết nối tới cơ sở dữ liệu SAMPLE;
nếu chưa có cơ sở dữ liệu SAMPLE trong hệ thống, thì bạn có thể tạo ra nó bằng
cách nhập lệnh db2sampl từ bất kỳ dấu nhắc lệnh nào.
Các MQT được duy trì bởi hệ thống
Các dữ liệu trong loại này của bảng truy vấn cụ thể hóa được duy trì bởi hệ thống.
Khi bạn tạo MQT loại này, thì bạn có thể xác định dữ liệu bảng sẽ là loại dữ liệu
REFRESH IMMEDIATE (làm mới ngay) hoặc REFRESH DEFERRED (làm mới
sau). Từ khóa REFRESH cho phép bạn xác định cách dữ liệu được được duy trì.
Làm mới sau có nghĩa là các dữ liệu trong bảng có thể được làm mới bất kỳ lúc
nào bằng cách sử dụng câu lệnh REFRESH TABLE. Các MQT, dù là làm mới
ngay hoặc về sau, được hệ thống duy trì, cũng không cho phép các hoạt động
chèn, cập nhật, hoặc xóa được thực hiện đối với chính chúng. Tuy nhiên, các MQT
với REFRESH IMMEDIATE được hệ thống duy trì được cập nhật với các thay
đổi trên bảng nêu ra như kết quả của các phép chèn, cập nhật, hoặc xóa.
Liệt kê 1 cho thấy ví dụ tạo ra một MQT REFRESH IMMEDIATE được hệ thống
duy trì. Bảng có tên EMP dựa trên các bảng EMPLOYEE và DEPARTMENT kể
ra trong cơ sở dữ liệu SAMPLE. Vì các MQT với REFRESH IMMEDIATE yêu
cầu rằng ít nhất một khóa đơn từ mỗi bảng được tham chiếu trong truy vấn xuất
hiện trong danh sách chọn, trước tiên ta xác định một ràng buộc đơn trên cột
EMPNO trong bảng EMPLOYEE và trên cột DEPTNO trong bảng
DEPARTMENT. Mệnh đề DATA INITIALLY DEFERRED đơn giản ngầm ý các
dữ liệu sẽ không được chèn vào bảng như là một phần của câu lệnh CREATE
TABLE. Sau khi được tạo, MQT ở trạng thái chờ kiểm tra (xem bảng
Demystifying và các trạng thái của không gian bảng), và không thể được truy vấn
cho đến khi câu lệnh SET INTEGRITY thực hiện đối với nó. Mệnh đề