SQL> select /* test1 */ id,name from dh_sql where id=771; ID NAME ---------- ------------------------------ 771 RULESET$ SQL> select * from table(dbms_xplan.display_cursor('90nh2m7a3gsvf','',''));
SQL> @sql_profiles.sql --可以看到确实已经使用! Enter value for sql_text: old 3: where sql_text like nvl('&sql_text','%') new 3: where sql_text like nvl('','%') Enter value for name: old 4: and name like nvl('&name',name) new 4: and name like nvl('',name) NAME CATEGORY STATUS SQL_TEXT FOR ------------------------------ --------------- -------- --------------------------------------------------------------------- PROFILE_90nh2m7a3gsvf_MANUAL DEFAULT ENABLED select /* test1 */ id,name from dh_sql where id=:"SYS_B_0" YES
SQL> conn /as sysdba Connected. SQL> set serveroutput on size 9999 SQL> @profile_hint.sql Enter value for profile_name: PROFILE_90nh2m7a3gsvf_MANUAL old 19: 'and name like (''&&profile_name'') '|| new 19: 'and name like (''PROFILE_90nh2m7a3gsvf_MANUAL'') '|| old 38: 'and p.name like (''&&profile_name'')) '|| new 38: 'and p.name like (''PROFILE_90nh2m7a3gsvf_MANUAL'')) '|| HINT ----------------------------------------------------------------------------------------------------------------------------- FULL(DH_SQL@SEL$1) --可以看到sql profile的基表里面保存了我们指定的提示
二、使用create_sql_profile.sql脚本固定内存中已经有的SQL的执行计划,通过指定sql_id SQL> conn dbmon/dbmon_123 Connected. SQL> select * from dh_sql where name='DBA_TABLES'; ID NAME TYPE ---------- ------------------------------ ------------------------------ 3167 DBA_TABLES VIEW 3168 DBA_TABLES SYNONYM 2 rows selected. SQL> select /* test2 */ * from dh_sql where name='DBA_TABLES'; ID NAME TYPE ---------- ------------------------------ ------------------------------ 3167 DBA_TABLES VIEW 3168 DBA_TABLES SYNONYM 2 ro