WHER EM NhânViên=7566; ã

Một phần của tài liệu Phương pháp tối ưu hóa trong hệ CSDL Oracle (Trang 30 - 31)

D. Kết luận về phơng pháp tối u trong Oracle

WHER EM NhânViên=7566; ã

FIRST_ROWS: Chỉ dẫn chọn luật tối u ớc lợng giá với thời gian đáp ứng là tối thiểu (và tối thiểu nguồn tài nguyên đợc sử dụng để trả lại hàng đầu tiên). Chỉ dẫn này sẽ ép Oracle chọn phơng thức truy nhập bằng Index thay cho duyệt toàn bộ (nếu có sẵn Index). Nếu không có sẵn Index thì Oracle sẽ sử dụng phơng thức truy nhật bằng Nested-loop thay cho Merge-sort. Chỉ dẫn này không có tác dụng khi câu lệnh sử dụng toán tử tập hợp (UNION, INTERSEC, MINUS, UNION ALL), mệnh đề GROUP BY, mệnh đề FOR UPDATE, hàm làm việc với nhóm hàng

(MIN, MAX, SUM, COUNT) và toán tử DISTINCT.

CHOOSE: Chỉ dẫn này cho phép Oracle chọn luật tối u dựa trên thông tin trong từ điển dữ liệu, nếu có thông tin về các bảng thì luật tối u ớc lợng đợc áp dụng còn ngợc lại thì áp dụng luật tối u cơ bản.

RULE: áp dụng luật tối u cơ bản cho câu lệnh.

6.2. Chỉ dẫn về chọn phơng thức truy nhập

FULL: Sử dụng phơng thức duyệt toàn bộ với một bảng đặc biệt bằng chỉ dẫn FULL(<tên bảng hoặc bí danh>) và nên sử dụng bí danh (alias) cho tên bảng.

Ví dụ:

SELECT /*+ FULL(a) Không sử dụng Index cho bảng NhânViên có bí danh là a */ M NhânViên,ã

TênNhânViên

FROM NhânViên a

WHERE M NhânViên=7566;ã

ROWID: Sử dụng duyệt bảng bằng ROWID cho một bảng đặc biệt bằng chỉ dẫn ROWID(<tên bảng hoặc bí danh>).

CLUSTER: Chọn phơng thức duyệt bằng Cluster cho một bảng bằng chỉ dẫn CLUSTER(<tên bảng hoặc bí danh>)

SELECT --+ CLUSTER NhânViênTênNhânViên, M Phòngã TênNhânViên, M Phòngã

WHERE M Phòng=10 AND NhânViên.M Phòng=Phòng.M Phòng;ã ã ã

HASH: Chọn phơng thức truy nhập băm (hash scan) cho một bảng bằng chỉ dẫn HASH(<tên bảng hoặc bí danh>).

INDEX: Chọn cách truy nhập bằng Index cho một bảng theo cú pháp sau

Một phần của tài liệu Phương pháp tối ưu hóa trong hệ CSDL Oracle (Trang 30 - 31)