Khảo sát kế hoạch vận hành

Một phần của tài liệu đề thi quản trị cơ sở dữ liệu phân tán 6 (Trang 35 - 37)

Để xem kqua kế hoạch vận hành, có thể chạy script: @UTLXPLS.SQL

Note:

The utlxpls.sql có thể tìm được trong thư mục $ORACLE_HOME/rdbms/admin .

Chạy script utlxpls.sql sẽ cho kế hoạch vận hành câu lệnh SELECT ta đã đặc tả . Kqua:

Plan Table

---| Operation | Name | Rows | Bytes| Cost | Pstart| Pstop | | Operation | Name | Rows | Bytes| Cost | Pstart| Pstop | --- | SELECT STATEMENT | | | | | | | | NESTED LOOPS | | | | | | | | VIEW | | | | | | | | REMOTE | | | | | | | | TABLE ACCESS BY INDEX RO|DEPT | | | | | | | INDEX UNIQUE SCAN |PK_DEPT | | | | | | ---

Nếu ta đang vận hành các truy vấn phân tán bằng cách viết collocated inline views của mình hay dùng hints, tốt nhất là phát sinh kế hoạch vận hành trước và sau tối ưu hóa bằng tay. Với cả hai khoạch vận hành, ta có thể so sánh hiệu quả của tối ưu hóa bằng tay và tạo sự cần thiết cải thiện hiệu năng của truy vấn phân tán.

Để xem lênh SQL vận hành tại site ở xa, hãy chạy lệnh SELECT sau: SELECT OTHER

WHERE operation = 'REMOTE'; Sau đây là kqu đưa ra mẫu:

SELECT DISTINCT "A1"."DEPTNO" FROM "EMP" "A1"

GROUP BY "A1"."DEPTNO" HAVING COUNT("A1"."DEPTNO")>3

Note:

Nếu có khó khăn về xem toàn bộ nọi dung cột OTHER, chạy leenhjSQL*Plus sau:

SET LONG 9999999

Sử dụng Hints

If a statement is not sufficiently optimized, then you can use hints to extend the capability of cost-based optimization. Specifically, if you write your own query to utilize collocated inline views, instruct the cost-based optimizer not to rewrite your distributed query. Additionally, if you have special knowledge about the database environment (such as statistics, load, network and CPU limitations, distributed queries, and so forth), you can specify a hint to guide cost-based optimization. For example, if you have written your own optimized query using collocated inline views that are based on your knowledge of the database environment, specify the NO_MERGE hint to prevent the optimizer from rewriting your query.

This technique is especially helpful if your distributed query contains an aggregate, subquery, or complex SQL. Because this type of distributed query cannot be rewritten by the optimizer, specifying NO_MERGE causes the optimizer to skip the steps described in "How Does Cost-Based Optimization Work?".

The DRIVING_SITE hint allows you to define a remote site to act as the query execution site. In this way, the query executes on the remote site, which then returns the data to the local site. This hint is especially helpful when the remote site contains the majority of the data.

See Also:

Oracle9i Database Performance Tuning Guide and Reference for more information about using hints.

Một phần của tài liệu đề thi quản trị cơ sở dữ liệu phân tán 6 (Trang 35 - 37)

Tải bản đầy đủ (DOC)

(96 trang)
w