Thứ Tư, 21 tháng 9, 2022

Sử dụng công cụ SQL Tunning Advisor để tối ưu câu lệnh SQL

Mục đích: Hướng dẫn cách Sử dụng công cụ SQL Tunning Advisor thông qua giao diện (TOAD, SQL Developer, EM, Cloud Control) và bằng gói DBMS_SQLTUNE 


CÁCH 1: SỬ DỤNG GIAO DIỆN TỪ TOAD, SQL DEVELOPER, EM, CLOUD CONTROL


TOAD: 

Vào Database --> Optimize --> Oracle Tunning Advirosr 
Sau đó đưa câu lệnh vào để Oracle đưa cho chúng ta khuyến nghị, Plan trước/sau cũng được đưa ra.

Sử dụng SQL Developer

Copy câu lệnh vào màn hình SQL Worksheet --> Click vào nút bên dưới

Hoặc vào Instance Viewer sẽ cho chúng ta tải cũng như các câu lệnh chiếm tải nhanh chóng, từ đó chỉ cần 1 click vào câu lệnh chiếm tải cao nhất theo các cột (CPU Time, Eleapsed Time,...) --> chọn SQL Detail chúng ta sẽ tối ưu được câu lệnh nhanh chóng

CÁCH 2: SỬ DỤNG GÓI DBMS_SQLTUNE

Chạy tự động tạo tuning task cho 1 tập câu lệnh (SQL Tuning Set (STS)) hoặc 1 câu lệnh SQL
  1. Tìm ra sql_id của câu SQL kém

SELECT sql_id,child_number,a.plan_hash_value

FROM v$sql a

WHERE sql_text LIKE 'SELECT * from app_owner.customer%'  --Thay đổi câu sql cho phù hợp

AND a.parsing_schema_name='APP_OWNER';   --Thay đổi schema cho phù hợp

 

SQL_ID        CHILD_NUMBER PLAN_HASH_VALUE

------------- ------------ ---------------

f123tskua45aa            0280178888

 

  1. Check Execution Plan của câu SQL trên nếu cần

SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('f123tskua45aa',0,'ALL'));

 

--SQL Tuning Set (STS) đặt là STS01:

 

  1. Tạo SQL Tuning Set 

SQL> EXEC DBMS_SQLTUNE.CREATE_SQLSET(sqlset_name => 'STS01', description => 'STS for sql_id f123tskua45aa');

 

  1. Tạo cursor và gán câu sql vào SQL Tuning Set ( Chú ý, với mỗi câu SQL thì gán vào 1 Cursor khác nhau, ko gán nhiều câu SQL vào 1 Cursor được)

 

SQL> DECLARE

  cursor1 DBMS_SQLTUNE.SQLSET_CURSOR;

BEGIN

  OPEN cursor1 FOR SELECT VALUE(p)

  FROM TABLE(DBMS_SQLTUNE.SELECT_CURSOR_CACHE('sql_id = ''f123tskua45aa'' and plan_hash_value=''0280178888''')) p;

 

  DBMS_SQLTUNE.LOAD_SQLSET(sqlset_name => 'STS01', populate_cursor => cursor1);

  CLOSE cursor1;

END;

/

 

  1. Kiểm tra xem trong các câu SQL Trong Tuning Set tương ứng

SQL> SELECT sql_id, plan_hash_value FROM TABLE(DBMS_SQLTUNE.SELECT_SQLSET('STS01'));

 

--SQl Tuning Advisor (STA)

--Tạo SQL Tuning Advisor  (STA01) từ STS, các option trong tài liệu:

 

  1. Tạo Tuning Task cho Tuning Set

 

SQL> DECLARE

  stmt_task VARCHAR2(64);

BEGIN

  stmt_task:=dbms_sqltune.create_tuning_task(sqlset_name => 'STS01', time_limit => 3600, task_name => 'STA01', description => 'Task to tune sql_id f123tskua45aa');

END;

/

 

  1. Chạy Tuning Task

SQL> EXECUTE dbms_sqltune.execute_tuning_task('STA01');

 

  1. Lấy ra report của các câu SQL 

 

SQL> SET linesize 150 LONG 999999 pages 1000 longchunksize 999999

SQL> SELECT dbms_sqltune.report_tuning_task('STA01') FROM dual;

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master