Files
oracle/star/imp_sql_profile.sql
T
2026-05-01 09:25:48 +02:00

47 lines
1.1 KiB
SQL

set serveroutput ON
declare
sql_text CLOB;
h SYS.SQLPROF_ATTR;
signature NUMBER;
signaturef NUMBER;
begin
/* Replace values as you wish */
h := SYS.SQLPROF_ATTR(
q'[BEGIN_OUTLINE_DATA]',
q'[IGNORE_OPTIM_EMBEDDED_HINTS]',
q'[OPTIMIZER_FEATURES_ENABLE('19.1.0')]',
q'[DB_VERSION('19.1.0')]',
q'[ALL_ROWS]',
q'[OUTLINE_LEAF(@"SEL$1")]',
q'[FULL(@"SEL$1" "D"@"SEL$1")]',
q'[END_OUTLINE_DATA]'
);
select SQL_FULLTEXT into sql_text from gv$sql where sql_id='&&1' and CHILD_NUMBER=0;
signature := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_text);
signaturef := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_text, TRUE);
DBMS_SQLTUNE.IMPORT_SQL_PROFILE (
sql_text => sql_text,
profile => h,
name => 'sqlprof_&&1',
description => 'sqlprof_&&1 '||signature||' '||signaturef||'',
category => 'DEFAULT',
validate => TRUE,
replace => TRUE,
force_match => FALSE /* TRUE:FORCE (match even when different literals in SQL). FALSE:EXACT (similar to CURSOR_SHARING) */ );
exception
when others then
dbms_output.put_line('Getting error: '||sqlerrm);
end;
/
set serveroutput OFF