Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Cấu hình và đường cơ sở của Oracle SQL

Bài đăng này nêu bật sự khác biệt giữa cấu hình SQL và đường cơ sở trongOracle® và giải thích cách nó hoạt động khi điều chỉnh một truy vấn.

Trình tối ưu hóa, cấu hình và đường cơ sở

Ở cấp độ cao, ba yếu tố này kết hợp với nhau như sau:

  • Trình tối ưu hóa truy vấn sử dụng thông tin như thống kê hệ thống, biến liên kết và biên dịch để có được kế hoạch tốt nhất cho việc thực thi truy vấn. Tuy nhiên, đôi khi các khiếm khuyết đầu vào dẫn đến một kế hoạch dưới mức tối ưu.

  • Cấu hình SQL chứa thông tin bổ trợ giúp giảm thiểu vấn đề này. Chúng giảm thiểu những sai lầm này và giúp trình tối ưu hóa chọn phương án tốt nhất.

  • Đường cơ sở kế hoạch SQL cho các câu lệnh SQL bao gồm một tập hợp các kế hoạch được chấp nhận. Sau khi phân tích bảng sao kê, trình tối ưu hóa sẽ chọn kế hoạch tốt nhất từ ​​tập hợp các kế hoạch được chấp nhận. Nếu trình tối ưu hóa chi phí tìm thấy một kế hoạch tốt khác, nó sẽ thêm kế hoạch mới vào lịch sử kế hoạch. Tuy nhiên, trình tối ưu hóa không sử dụng gói mới cho đến khi xác minh rằng nó sẽ hoạt động tốt hơn gói hiện được chấp nhận.

Hãy nghĩ theo cách này:Các cấu hình SQL cung cấp thông tin cho trình tối ưu hóa để giúp chọn phương án tốt nhất nhưng không buộc trình tối ưu hóa phải chọn bất kỳ kế hoạch cụ thể nào. xem xét các kế hoạch dựa trên chi phí, đưa chúng vào bộ kế hoạch cơ bản được chấp nhận.

Sử dụng cấu hình SQL nếu bạn muốn trình tối ưu hóa sử dụng kế hoạch chi phí thấp nhất và cần sử dụng số liệu thống kê mới nhất. Sử dụng các đường cơ sở khi bạn muốn sử dụng một trong những nhóm kế hoạch cụ thể. Nếu đường cơ sở của kế hoạch SQL không thể có được kế hoạch tốt nhất từ ​​tập hợp được chấp nhận, hãy sử dụng cấu hình SQL để thay thế.

Quản lý kế hoạch SQL

Quản lý kế hoạch SQL (SPM) có các thành phần sau:

  • Lên kế hoạch
  • Lựa chọn kế hoạch
  • Lập kế hoạch phát triển
Chụp gói SPM

Khi bạn thực thi bất kỳ câu lệnh nào, hệ thống sẽ phân tích cú pháp cứng và tạo ra một kế hoạch chi phí theo cấu hình SQL có sẵn. Sau khi nó chọn một kế hoạch dựa trên chi phí, nó sẽ so sánh các kế hoạch có sẵn trong các đường cơ sở của kế hoạch SQL. Nếu kế hoạch được tạo dựa trên chi phí phù hợp với một trong các kế hoạch được chấp nhận, thì bạn có thể sử dụng kế hoạch đó. Nếu kế hoạch không khớp, hệ thống sẽ thêm nó vào đường cơ sở của kế hoạch dưới dạng kế hoạch được chấp nhận.

Lựa chọn gói SPM

Khi bạn thực thi câu lệnh SQL với một kế hoạch cơ sở, nó sẽ chọn kế hoạch tốt nhất cho SQL đó. Trình tối ưu hóa sử dụng cùng một quy trình. Hồ sơ SQL có sẵn cũng ảnh hưởng đến chi phí ước tính cho mỗi gói và chọn một gói phù hợp.

Sự phát triển của kế hoạch SPM

Thành phần cuối cùng của SPM là sự phát triển của các kế hoạch không được chấp nhận, nó kiểm tra các kế hoạch chưa được chấp nhận so với các kế hoạch đã được chấp nhận. Quá trình này đánh giá thời gian lập kế hoạch tốt nhất được thực hiện bởi một truy vấn và các tài nguyên CPU cần thiết. Nó chấp nhận gói tốt nhất theo chi phí của truy vấn. Nếu cấu hình SQL có sẵn, thì nó sẽ ảnh hưởng đến chi phí ước tính.

So sánh tiểu sử so với đường cơ sở

Bảng sau, fromhttps://www.cnblogs.com/princessd8251/articles/3637461.html, so sánh cấu hình SQL và đường cơ sở kế hoạch SQL:

Cấu hình và đường cơ sở của Oracle SQL

Kiến trúc

Hình ảnh sau đây cho thấy kiến ​​trúc cơ sở của kế hoạch SQL:

Cấu hình và đường cơ sở của Oracle SQL

Nguồn hình ảnh:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/)


Tải đường cơ sở kế hoạch SQL

Hình ảnh sau đây cho thấy hai cách để tải đường cơ sở kế hoạch SQL:

Cấu hình và đường cơ sở của Oracle SQL

Nguồn hình ảnh:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/


Với phương pháp đầu tiên, bạn có thể đặt OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES tham số khởi tạo thành TRUE để sử dụng tính năng thu thập kế hoạch tự động. Tham số phân tích này là FALSE theo mặc định, vì vậy hãy đặt nó thành TRUE như được hiển thị trong ví dụ sau:

Cấu hình và đường cơ sở của Oracle SQL

Với phương pháp thứ hai, bạn có thể sử dụng DBMS_SPM gói để kích hoạt đường cơ sở kế hoạch SQL quản lý thủ công. Tải các kế hoạch từ bộ điều chỉnh SQL như được hiển thị trong ví dụ sau:

Cấu hình và đường cơ sở của Oracle SQL
Tải đường cơ sở kế hoạch SQL theo cách thủ công

Sử dụng lệnh sau để tải đường cơ sở kế hoạch theo cách thủ công:

Cấu hình và đường cơ sở của Oracle SQL

Kiểm tra mức sử dụng cơ sở của gói SQL

Sau khi tải đường cơ sở kế hoạch SQL, bạn cần thực thi SQL để xem liệu trình quản lý có đang sử dụng đường cơ sở kế hoạch SQL hay không. Bạn có thể truy vấn đường cơ sở của kế hoạch SQL bằng cách sử dụng SQL_TEXT và tên kế hoạch như sau:

Cấu hình và đường cơ sở của Oracle SQL

Hiển thị đường cơ sở kế hoạch SQL

Chạy truy vấn sau để hiển thị đường cơ sở kế hoạch SQL:

Cấu hình và đường cơ sở của Oracle SQL

Bỏ đường cơ sở kế hoạch SQL

Để giảm đường cơ sở kế hoạch SQL, hãy chạy truy vấn sau để kiểm tra trình tối ưu hóa cây trồng SQL nào đang sử dụng:

Cấu hình và đường cơ sở của Oracle SQL

Sau đó, sau khi bạn nhận được gói đang sử dụng, hãy chạy lệnh sau để bỏ đường cơ sở:

Cấu hình và đường cơ sở của Oracle SQL

Cấu hình Oracle SQL

Cố vấn SQL tunning, mà bạn kích hoạt thông qua Oracle Enterprise Manager (OEM) hoặc bằng cách sử dụng truy vấn dòng lệnh, có thể tạo cấu hình SQL cho một câu lệnh SQL. Hồ sơ này bao gồm thông tin bổ sung về tuyên bố.

Ví dụ

Trong ví dụ này, trước tiên bạn chạy cố vấn điều chỉnh SQL dựa trên sql_id và sau đó thực hiện các hoạt động trên cấu hình SQL:

1. Chạy trình cố vấn điều chỉnh SQL

Chạy mã cố vấn điều chỉnh SQL sau cho sql_id, 6dkrnbx1zdwy38 :

Cấu hình và đường cơ sở của Oracle SQL Cấu hình và đường cơ sở của Oracle SQL

Chạy DBMS_SQLTUNE.report_tuning_task sau cho các đề xuất:

Cấu hình và đường cơ sở của Oracle SQL

2. Chấp nhận sql_profile

Chạy mã sau để chấp nhận sql_profile:

Cấu hình và đường cơ sở của Oracle SQL

3. Kiểm tra tên của sql_profile

Sử dụng truy vấn sau để kiểm tra tên sql_profile:

Cấu hình và đường cơ sở của Oracle SQL

4. Tắt sql_profile

Chạy mã sau để tắt sql_profile:

Cấu hình và đường cơ sở của Oracle SQL

Để bật tính năng này, hãy thay đổi giá trị từ DISABLED thành ENABLED .

5. Thả sql_profile

Chạy mã sau để thả sql_profile:

Cấu hình và đường cơ sở của Oracle SQL

Kết luận

Khi bạn thực thi bất kỳ câu lệnh SQL nào, trình tối ưu hóa sẽ tạo một kế hoạch thực thi tổng hợp truy vấn, truy xuất dữ liệu từ đĩa cứng và đặt nó vào bộ nhớ. Giá cả. Một kế hoạch SQL tốt chạy một truy vấn một cách hiệu quả và cung cấp kết quả mong muốn nhanh hơn.

Tìm hiểu thêm về các dịch vụ Cơ sở dữ liệu của chúng tôi.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.