Để tối ưu hóa câu lệnh SQL bằng SQL Tuning Advisor trong Oracle, bạn có thể thực hiện theo các bước sau đây:
1. Kết nối tới Oracle Database
Trước tiên, kết nối đến cơ sở dữ liệu Oracle của bạn bằng SQL*Plus hoặc một công cụ quản lý cơ sở dữ liệu khác như Oracle SQL Developer.
2. Tạo Task cho SQL Tuning Advisor
Bạn cần tạo một task cho SQL Tuning Advisor bằng cách sử dụng gói DBMS_SQLTUNE. Task này sẽ chứa thông tin về câu lệnh SQL bạn muốn tối ưu hóa.
Ví dụ sử dụng SQL*Plus:
BEGIN
DBMS_SQLTUNE.CREATE_TUNING_TASK (
sql_id => ‘your_sql_id’,
scope => DBMS_SQLTUNE.SCOPE_COMPREHENSIVE,
time_limit => 60,
task_name => ‘your_task_name’,
description => ‘Tuning task for a specific SQL statement’
);
END;
/
3. Thực hiện Task của SQL Tuning Advisor
Chạy task vừa tạo để SQL Tuning Advisor thực hiện phân tích và đề xuất tối ưu hóa.
BEGIN
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => ‘your_task_name’);
END;
/
4. Xem báo cáo từ SQL Tuning Advisor
Sau khi task hoàn tất, bạn có thể xem báo cáo từ SQL Tuning Advisor để biết các đề xuất tối ưu hóa.
SET LONG 10000;
SET PAGESIZE 1000;
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(‘your_task_name’) AS report FROM DUAL;
5. Áp dụng đề xuất tối ưu hóa (tuỳ chọn)
Nếu SQL Tuning Advisor đưa ra các đề xuất như tạo các chỉ mục mới hoặc sử dụng các kế hoạch thực thi khác, bạn có thể chọn áp dụng các đề xuất này. Bạn cần xem xét cẩn thận các đề xuất và đảm bảo rằng chúng phù hợp với hệ thống của bạn.
BEGIN
DBMS_SQLTUNE.ACCEPT_SQL_PROFILE (
task_name => ‘your_task_name’,
name => ‘your_sql_profile_name’
);
END;
/
6. Xoá Task sau khi hoàn tất (tuỳ chọn)
Sau khi đã thực hiện và áp dụng các tối ưu hóa, bạn có thể xoá task để giải phóng tài nguyên.
BEGIN
DBMS_SQLTUNE.DROP_TUNING_TASK(task_name => ‘your_task_name’);
END;
/
Ví dụ cụ thể
Giả sử bạn có câu lệnh SQL với SQL ID là ‘8abc123xyz’ mà bạn muốn tối ưu hóa. Các bước sẽ như sau:
— Tạo task
BEGIN
DBMS_SQLTUNE.CREATE_TUNING_TASK (
sql_id => ‘8abc123xyz’,
scope => DBMS_SQLTUNE.SCOPE_COMPREHENSIVE,
time_limit => 60,
task_name => ‘tune_sql_8abc123xyz’,
description => ‘Tuning task for SQL ID 8abc123xyz’
);
END;
/
— Thực hiện task
BEGIN
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => ‘tune_sql_8abc123xyz’);
END;
/
— Xem báo cáo
SET LONG 10000;
SET PAGESIZE 1000;
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(‘tune_sql_8abc123xyz’) AS report FROM DUAL;
— Áp dụng đề xuất (nếu có)
BEGIN
DBMS_SQLTUNE.ACCEPT_SQL_PROFILE (
task_name => ‘tune_sql_8abc123xyz’,
name => ‘sql_profile_8abc123xyz’
);
END;
/
— Xoá task (tuỳ chọn)
BEGIN
DBMS_SQLTUNE.DROP_TUNING_TASK(task_name => ‘tune_sql_8abc123xyz’);
END;
/

Bikil - Bikini & Lingerie Fashion Responsive Shopify Theme
Ashi - Yoga Pilates, Fitness Shopify Theme
Minimog - Next-gen Multipurpose Shopify theme grade-A
Download Monitor - CSV Importer
Porto | Multipurpose & WooCommerce Theme
Ninja E-Sport - Gaming Elementor Template Kit
Almighty Wordpress Theme
Seporta - Gym & Fitness Trainer Elementor Template Kit
Finess Elementor Template Kit
Groovy Mega Menu
Lunar - Template Kit for eSport & Gaming
Revision - Optimized Personal Blog WordPress Theme
CheerUp - Food, Blog & Magazine for WordPress
Gymsite - Gym Elementor Template Kit
Menica - Wedding Elementor Template Kit
Fodis - Restaurant & Cafe WordPress Theme
jannifer hamis health coach healthy lifestyle blog
Ohio - Creative Portfolio & Agency WordPress Theme
Academy pro wordpress theme
Adaptable Notes Wordpress Theme
Traveler - Travel Booking WordPress Theme
Gloreya - Food Ordering & Delivery Restaurant WordPress Theme