使用sql tuning advisor最佳化sql
sql tuning advisor為Oracle提供的sql最佳化工具,分析複雜SQL效能問題時可以透過sql tuning advisor參考oracle的建議。
1.建立測試資料
create user ttest identified by ttest;
grant connect,resource,dba to ttest;
conn ttest
/ttest
create table t1 as
select
* from dba_tables;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
commit;
create table t2 as
select
* from dba_users;
create table t3 as
select
* from dba_objects;
insert into t3 select * from t3;
insert into t3 select * from t3;
insert into t3 select * from t3;
insert into t3 select * from t3;
insert into t3 select * from t3;
commit;
create table t4 as
select
* from dba_data_files;
create view v1 as
select
t1.table_name,t1.owner,t1.TABLESPACE_NAME,t1.NUM_ROWS,t3.CREATED,t3.LAST_DDL_TIME from t1,t3 where t1.table_name=t3.object_name and t1.owner=t3.owner;
2.收集統計資訊及測試效果
exec
dbms_stats.gather_schema_stats(
'TTEST'
);
select
* from v1 where table_name=
'SDO_FEATURE_USAGE'
;
3.執行sql tuning advisor
select sql_id,sql_text from v$sql where sql_text like '%SDO_FEATURE_USAGE%';
生成task:
DECLARE
my_task_name VARCHAR2(30);
BEGIN
my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id =>
'20vymfjk9wqw8'
,
scope =>
'COMPREHENSIVE'
,
time_limit => 3600,
task_name =>
'sql_tuing_task'
,
description =>
'SQL TUNE TEST'
);
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name =>
'sql_tuing_task'
);
END;
/
執行task,檢視結果:
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(
'sql_tuing_task'
) FROM DUAL;
按照建議執行新建兩個索引,重新收集統計資訊後,原sql執行耗時大大縮短,效果如下:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994536/viewspace-2761708/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle SQL最佳化器SQL Tuning Advisor (STA)OracleSQL
- SQL Access Advisor、SQL Tuning Advisor 測試SQL
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- Oracle 11 sql tuning advisor sql access advisor關閉以及job檢視與停止OracleSQL
- Oracle自帶工具sql優化集-SQL Tuning Advisor (使用心得體會)OracleSQL優化
- Oracle優化案例-關閉auto space advisor和sql tuning advisor(十九)Oracle優化SQL
- SQL Access Advisor(zt)SQL
- [20191112]SQL Tuning by adding column alias (2).txtSQL
- SQL最佳化SQL
- SQL最佳化案例-使用with as最佳化Subquery Unnesting(七)SQL
- sql最佳化技巧SQL
- SQL最佳化方案SQL
- SQL最佳化1SQL
- 08SQL最佳化SQL
- SQL語句最佳化SQL
- SQL 最佳化手冊SQL
- SQL最佳化問題SQL
- 小米 sql 最佳化工具SQL
- SQL最佳化案例-正確的使用索引(二)SQL索引
- 【慢SQL效能最佳化】 一條SQL的生命週期SQL
- 微課sql最佳化(17)、不改程式碼,最佳化SQL(1)-最佳化方法總結SQL
- 【SQL】SQL中if條件的使用SQL
- hive06_SQL最佳化HiveSQL
- 聊一聊SQL最佳化SQL
- 效能調優——SQL最佳化SQL
- Sql最佳化之回表SQL
- 史上最全SQL最佳化方案SQL
- 最佳化sql的利器SQLTSQL
- SQL效能最佳化之索引最佳化法SQL索引
- sql server 使用SQLServer
- 使用AI最佳化慢SQL,再也不用求助DBA了AISQL
- sql最佳化的幾種方式SQL
- 最佳化SQL Server索引的技巧SQLServer索引
- SQL最佳化案例-union代替or(九)SQL
- SQL最佳化案例-從執行計劃定位SQL問題(三)SQL
- SQL Server 資料太多如何最佳化SQLServer
- SQL 執行 - 執行器最佳化SQL
- 這個SQL你會最佳化嗎?SQL