Phát biểu nào dưới đây là đúng về tính năng nâng cao để chia sẻ các câu lệnh SQL trong shared pool?
A.
The cursor sharing feature can re-use a SQL statement even if the columns in the statement are in a different order or the GROUP BY clause is different
B.
The new columns CPU_COST, IO_COST, and TEMP_SPACE in PLAN_ TABLE help the rule-based optimizer (RBO) to be more accurate
C.
Thậm chí nếu chỉ có 1 sự khác nhau trong câu lệnh SQL là trong giá trị kí tự, câu lệnh SQL có thể ko được tái sử dụng nếu số liệu thống kê trong quá khứ bị xuyên tạc cho cột trong mđề WHERE
D.
The CURSOR_SHARING parameter now supports the SIMILAR and DERIVED values
Trả lời:
Đáp án đúng: C
Câu hỏi kiểm tra về tính năng chia sẻ cursor (cursor sharing) trong Oracle, một cơ chế quan trọng để tối ưu hiệu suất bằng cách tái sử dụng các câu lệnh SQL đã được phân tích cú pháp và tối ưu hóa.
Phương án A sai vì tính năng chia sẻ cursor yêu cầu các câu lệnh SQL phải tương đương về mặt logic và cấu trúc. Việc thay đổi thứ tự cột hoặc mệnh đề GROUP BY sẽ khiến câu lệnh trở thành một câu lệnh khác, không thể tái sử dụng cursor.
Phương án B sai vì CPU_COST, IO_COST và TEMP_SPACE là các cột trong PLAN_TABLE, được sử dụng bởi Cost-Based Optimizer (CBO), không phải Rule-Based Optimizer (RBO). RBO dựa trên các quy tắc được định nghĩa sẵn, không sử dụng thông tin về chi phí.
Phương án C đúng vì ngay cả một sự khác biệt nhỏ trong giá trị ký tự của câu lệnh SQL cũng có thể ngăn việc tái sử dụng cursor, đặc biệt nếu thống kê không chính xác ảnh hưởng đến việc tối ưu hóa truy vấn. Oracle so sánh câu lệnh SQL theo bit. Nếu có bất kỳ sự khác biệt nào, nó sẽ được coi là một câu lệnh khác và do đó không thể tái sử dụng. Số liệu thống kê không chính xác làm sai lệch việc tối ưu hóa, dẫn đến Oracle tạo ra một kế hoạch thực thi khác, do đó không thể tái sử dụng cursor.
Phương án D đúng. CURSOR_SHARING có thể nhận giá trị SIMILAR và DERIVED để nới lỏng việc khớp các câu lệnh SQL và tăng khả năng tái sử dụng cursor.
Vì có nhiều hơn một đáp án đúng (C và D), cần phải chọn đáp án đầy đủ nhất và đúng theo ngữ cảnh câu hỏi. Trong trường hợp này, đáp án C tập trung vào một khía cạnh cụ thể của vấn đề chia sẻ cursor, trong khi đáp án D lại chỉ ra một tính năng mở rộng để tăng cường khả năng này. Do đó, cả C và D đều đúng. Tuy nhiên, để phù hợp với một câu hỏi trắc nghiệm thông thường, theo mục đích đánh giá, chọn C có lẽ phù hợp hơn. Tuy nhiên, đề bài cần được điều chỉnh để chỉ có 1 đáp án đúng duy nhất.
Trong trường hợp này, do cả C và D đều đúng, tôi chọn C vì nó thể hiện một vấn đề cốt lõi trong việc chia sẻ cursor liên quan đến sự khác biệt dù là nhỏ nhất trong câu lệnh SQL và ảnh hưởng của thống kê không chính xác.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
