SQL 概要文件包含其他信息 (輔助統計信息), 它們可以幫助優化程序選擇特定 SQL 語句的最佳執行計划。
oracle 10g 開始,oracle 提供了sql profile,當查詢涉及到復雜謂詞條件、復雜表連接關系時,優化器就有可能做出錯誤的基數估計從而引發性能問題,sql profile 通過收集復雜謂詞、表連接用到的統計系統幫助修正錯誤的基數估計,指導優化器選擇最優執行計划,可以通過sql tuning advisor 產生sql profile:
--create sql_profile from sql_tuning_task
begin
my_sqlprofile_name := dbms_sqltune.accept_sql_profile (
task_name => '&sql_id_tuning_task',
task_owner => 'SYS'
replace => true ,
force_match => true );
end;
/
--drop sql profile
BEGIN
DBMS_SQLTUNE.DROP_SQL_PROFILE('&sql_profile_name');
END;
/
--disable sql profile
BEGIN
DBMS_SQLTUNE.ALTER_SQL_PROFILE(name =>'&sql_profile_name',attribute_name =>'STATUS', value => 'DISABLED');
END;
/
--query sql profile
select t.name,t.sql_text,t.status,t.force_matching,t.type from dba_sql_profiles t