利用DBMS_SQLTUNE優化SQL
DBMS_SQLTUNE優化SQL是在oracle10g才出來的新特性,使用它能很大程度上方便對sql的分析和優化。執行DBMS_SQLTUNE包進行sql優化需要有advisor的許可權:
sys>grant advisor to GENLOT_ONLINE;
Grant succeeded.
使用DBMS_SQLTUNE包進行SQL優化,大致可以分為四個步驟:
建立優化任務
執行優化任務
顯示優化任務的結果
按照建議執行優化
執行優化任務
顯示優化任務的結果
按照建議執行優化
一、建立優化任務
使用dbms_sqltune.create_tuning_task函式來建立優化任務
函式的返回值為建立的任務名。下面我們建立一個叫 aning_tuning_task 的任務:
DECLARE
my_task_name VARCHAR2(30);
my_sqltext CLOB;
BEGIN
my_sqltext := 'SELECT /*+ rule */ * FROM t ORDER BY id;';
my_task_name := dbms_sqltune.create_tuning_task (sql_text=> my_sqltext,
bind_list => null,
user_name => 'GENLOT_ONLINE',
scope => 'COMPREHENSIVE',
time_limit => 60,
task_name => 'aning_tuning_task',
description => 'Aning Tuning Task'
);
END;
/
注意:my_sqltext是難點,有的sql語句在匿名快中不認識,需要轉意
二、執行優化任務
通過呼叫dbms_sqltune.execute_tuning_task過程來執行前面建立好的優化任務。
exec dbms_sqltune.execute_tuning_task('aning_tuning_task');
三、檢查優化任務的狀態
通過檢視user_advisor_tasks/dba_advisor_tasks檢視可以檢視優化任務的當前狀態。
SELECT status FROM USER_ADVISOR_TASKS WHERE task_name ='aning_tuning_task';
四、得到優化任務執行的結果
通過dbms_sqltune.report_tning_task函式可以獲得優化任務的結果。
SET LONG 999999
set serveroutput on size 999999
SET LINESIZE 1000
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('aning_tuning_task') FROM DUAL;
set serveroutput on size 999999
SET LINESIZE 1000
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('aning_tuning_task') FROM DUAL;
五、刪除優化任務
通過呼叫dbms_sqltuen.drop_tuning_task可以刪除已經存在的優化任務
exec dbms_sqltune.drop_tuning_task('aning_tuning_task');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12457158/viewspace-722212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DBMS_SQLTUNE優化SQLSQL優化
- SQL優化----dbms_sqltune詳解(1)SQL優化
- 使用dbms_sqltune進行SQL優化SQL優化
- 使用dbms_sqltune調優sql的步驟SQL
- SQL優化之利用索引排序SQL優化索引排序
- SQL效能的度量 - 利用Hints和dbms_sqltune進行SQL監控SQL
- 利用Oracle 10g SQL優化器(STA)優化語句Oracle 10gSQL優化
- SQL調優工具包DBMS_SQLTUNE的使用方法SQL
- Oracle10g新特性:使用DBMS_SQLTUNE最佳化SQLOracleSQL
- 【SQL優化】SQL優化工具SQL優化
- SQL Server優化之SQL語句優化SQLServer優化
- SQL優化SQL優化
- with as優化sql優化SQL
- 效能優化案例-SQL優化優化SQL
- DBMS_SQLTUNE詳解(2)---sql_profileSQL
- SQL Tuning Advisor : dbms_sqltuneSQL
- 資料庫優化 - SQL優化資料庫優化SQL
- sql優化之邏輯優化SQL優化
- SQL優化:limit分頁優化SQL優化MIT
- MySQL 效能優化之SQL優化MySql優化
- SQL優化--用各種hints優化一條SQLSQL優化
- 【SQL優化】SQL優化的10點注意事項SQL優化
- SQL SERVER中SQL優化SQLServer優化
- 使用dbms_sqltune獲得SQL調整建議SQL
- SQL優化指南SQL優化
- SQL SERVER優化SQLServer優化
- sql效能優化SQL優化
- Sql優化方法SQL優化
- oracle sql優化OracleSQL優化
- SQL優化-索引SQL優化索引
- SQL優化(一)SQL優化
- oracle sql 優化OracleSQL優化
- sql 效能優化SQL優化
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- Oracle效能優化-SQL優化(案例二)Oracle優化SQL
- Oracle效能優化-SQL優化(案例三)Oracle優化SQL
- Oracle效能優化-SQL優化(案例四)Oracle優化SQL
- SQL Server SQL效能優化之引數化SQLServer優化