2026-07-11 16:10:12
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
SPO coe_xfr_sql_profile_9t7jvx0gm0m95_1509575125.log;
|
||||
SET ECHO ON TERM ON LIN 2000 TRIMS ON NUMF 99999999999999999999;
|
||||
REM
|
||||
REM $Header: 215187.1 coe_xfr_sql_profile_9t7jvx0gm0m95_1509575125.sql 11.4.4.4 2026/07/08 carlos.sierra $
|
||||
REM
|
||||
REM Copyright (c) 2000-2012, Oracle Corporation. All rights reserved.
|
||||
REM
|
||||
REM AUTHOR
|
||||
REM carlos.sierra@oracle.com
|
||||
REM
|
||||
REM SCRIPT
|
||||
REM coe_xfr_sql_profile_9t7jvx0gm0m95_1509575125.sql
|
||||
REM
|
||||
REM DESCRIPTION
|
||||
REM This script is generated by coe_xfr_sql_profile.sql
|
||||
REM It contains the SQL*Plus commands to create a custom
|
||||
REM SQL Profile for SQL_ID 9t7jvx0gm0m95 based on plan hash
|
||||
REM value 1509575125.
|
||||
REM The custom SQL Profile to be created by this script
|
||||
REM will affect plans for SQL commands with signature
|
||||
REM matching the one for SQL Text below.
|
||||
REM Review SQL Text and adjust accordingly.
|
||||
REM
|
||||
REM PARAMETERS
|
||||
REM None.
|
||||
REM
|
||||
REM EXAMPLE
|
||||
REM SQL> START coe_xfr_sql_profile_9t7jvx0gm0m95_1509575125.sql;
|
||||
REM
|
||||
REM NOTES
|
||||
REM 1. Should be run as SYSTEM or SYSDBA.
|
||||
REM 2. User must have CREATE ANY SQL PROFILE privilege.
|
||||
REM 3. SOURCE and TARGET systems can be the same or similar.
|
||||
REM 4. To drop this custom SQL Profile after it has been created:
|
||||
REM EXEC DBMS_SQLTUNE.DROP_SQL_PROFILE('coe_9t7jvx0gm0m95_1509575125');
|
||||
REM 5. Be aware that using DBMS_SQLTUNE requires a license
|
||||
REM for the Oracle Tuning Pack.
|
||||
REM 6. If you modified a SQL putting Hints in order to produce a desired
|
||||
REM Plan, you can remove the artifical Hints from SQL Text pieces below.
|
||||
REM By doing so you can create a custom SQL Profile for the original
|
||||
REM SQL but with the Plan captured from the modified SQL (with Hints).
|
||||
REM
|
||||
WHENEVER SQLERROR EXIT SQL.SQLCODE;
|
||||
REM
|
||||
VAR signature NUMBER;
|
||||
VAR signaturef NUMBER;
|
||||
REM
|
||||
DECLARE
|
||||
sql_txt CLOB;
|
||||
h SYS.SQLPROF_ATTR;
|
||||
PROCEDURE wa (p_line IN VARCHAR2) IS
|
||||
BEGIN
|
||||
DBMS_LOB.WRITEAPPEND(sql_txt, LENGTH(p_line), p_line);
|
||||
END wa;
|
||||
BEGIN
|
||||
DBMS_LOB.CREATETEMPORARY(sql_txt, TRUE);
|
||||
DBMS_LOB.OPEN(sql_txt, DBMS_LOB.LOB_READWRITE);
|
||||
-- SQL Text pieces below do not have to be of same length.
|
||||
-- So if you edit SQL Text (i.e. removing temporary Hints),
|
||||
-- there is no need to edit or re-align unmodified pieces.
|
||||
wa(q'[select * from t1 where i=5000]');
|
||||
DBMS_LOB.CLOSE(sql_txt);
|
||||
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'[INDEX_RS_ASC(@"SEL$1" "T1"@"SEL$1" ("T1"."I"))]',
|
||||
q'[BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$1" "T1"@"SEL$1")]',
|
||||
q'[END_OUTLINE_DATA]');
|
||||
:signature := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_txt);
|
||||
:signaturef := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_txt, TRUE);
|
||||
DBMS_SQLTUNE.IMPORT_SQL_PROFILE (
|
||||
sql_text => sql_txt,
|
||||
profile => h,
|
||||
name => 'coe_9t7jvx0gm0m95_1509575125',
|
||||
description => 'coe 9t7jvx0gm0m95 1509575125 '||: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) */ );
|
||||
DBMS_LOB.FREETEMPORARY(sql_txt);
|
||||
END;
|
||||
/
|
||||
WHENEVER SQLERROR CONTINUE
|
||||
SET ECHO OFF;
|
||||
PRINT signature
|
||||
PRINT signaturef
|
||||
PRO
|
||||
PRO ... manual custom SQL Profile has been created
|
||||
PRO
|
||||
SET TERM ON ECHO OFF LIN 80 TRIMS OFF NUMF "";
|
||||
SPO OFF;
|
||||
PRO
|
||||
PRO COE_XFR_SQL_PROFILE_9t7jvx0gm0m95_1509575125 completed
|
||||
Reference in New Issue
Block a user