使用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
- Oracle SQL最佳化之sql tuning advisor(STA)OracleSQL
- SQL Access Advisor 與SQL Tuning AdvisorSQL
- SQL TUNING ADVISORSQL
- sql tuning set/sql tuning advisor(待完善)SQL
- Sql Tuning Advisor 使用方法SQL
- SQL Tuning Advisor使用例項SQL
- SQL Access Advisor、SQL Tuning Advisor 測試SQL
- sql tuning advisor和sql access advisor區別SQL
- ORACLE SQL TUNING ADVISOR 使用方法OracleSQL
- 手工執行sql tuning advisor和sql access advisorSQL
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- oracle實用sql(3)--sql tuning advisorOracleSQL
- SQL Tuning Advisor簡介SQL
- 使用SQL Profile及SQL Tuning Advisor固定執行計劃SQL
- sql tuning advisor(STA) 建議 建立sql profileSQL
- Oracle SQL優化之sql tuning advisor(STA)OracleSQL優化
- 在EM中使用SQL Tuning Advisor(SQL優化建議)優化SQLSQL優化
- [原創]ORACLE SQL TUNING ADVISOR 使用方法OracleSQL
- 深入瞭解SQL Tuning AdvisorSQL
- SQL Tuning Advisor : dbms_sqltuneSQL
- Sql最佳化(二十二) 自動調優工具:sql tuning advisor和sql profile介紹SQL
- Guideline of SQL Tuning AdvisorGUIIDESQL
- Introduction to SQL Tuning Advisor zt自ITPUBSQL
- Oracle自帶工具sql優化集-SQL Tuning Advisor (使用心得體會)OracleSQL優化
- Oracle 11 sql tuning advisor sql access advisor關閉以及job檢視與停止OracleSQL
- Sql Tuning Advisor的大致過程測試!SQL
- Oracle優化案例-關閉auto space advisor和sql tuning advisor(十九)Oracle優化SQL
- 【kingsql分享】Oracle 10G強大的SQL優化工具:SQL Tuning AdvisorSQLOracle 10g優化
- sql tuningSQL
- sql最佳化:使用sql profile最佳化sql語句SQL
- Oracle12c中SQL最佳化(SQL TUNING)新特性之SQL計劃指令OracleSQL
- oracle11g中SQL最佳化(SQL TUNING)新特性之SQL Plan Management(SPM)OracleSQL
- Oracle OCP 1Z0 053 Q253(SQL Tuning Advisor)OracleSQL
- Oracle OCP IZ0-053 Q46(SQL Tuning Advisor Limited)OracleSQLMIT
- sql tuning task和sql profileSQL
- Automatic SQL Tuning and SQL ProfilesSQL
- SQL Repair AdvisorSQLAI