Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose
As opposed to dbms_sqltune_util0, is for sqltune and sqlpi internal utility procedures and functions that might access dictionary objects.
It should be used for all general utility functions that can/need to be DEFINER's rights. If a function only needs to be accessible from the dbms_sqltune/sqldiag/etc feature layer,
do not put it here, but rather in the infrastructure layer (prvssqlf). This layer is for code that should be globally accessible, even from the internal package.
AUTHID
DEFINER
Constants
Name
Data Type
Value
Target object IDs which are defined in OBJ_XXX_NUM
OBJ_SQL#
NUMBER
7
OBJ_SQLSET#
NUMBER
8
OBJ_AUTO_SQLWKLD#
NUMBER
22
OBJ_SPA_EXEC_PROP#
NUMBER
23
OBJ_SPA_TASK#
NUMBER
24
OBJ_SPM_EVOLVE_TASK#
NUMBER
25
OBJ_COMPARE_PLANS_TASK#
NUMBER
30
Execution Type Names
SQLTUNE
VARCHAR2(10)
'TUNE SQL'
TEST_EXECUTE
VARCHAR2(12)
'TEST EXECUTE'
EXPLAIN_PLAN
VARCHAR2(12)
'EXPLAIN PLAN'
COMPARE
VARCHAR2(19)
'COMPARE PERFORMANCE'
STS2TRIAL
VARCHAR2(19)
'CONVERT SQLSET'
SQLDIAG
VARCHAR2(19)
'SQL DIAGNOSIS'
SPMEVOLVE
VARCHAR2(14)
'SPM EVOLVE'
COMPAREPLANS
VARCHAR2(19)
'COMPARE PLANS'
Execution Type IDs
SQLTUNE#
INTEGER
1
EXECUTE#
INTEGER
2
EXPLAIN#
INTEGER
3
SQLDIAG#
INTEGER
4
COMPARE#
INTEGER
5
EVOLVE#
INTEGER
6
COMPAREPLANS#
INTEGER
7
STS Properties
PROP_SQLSET_NAME
VARCHAR2(30)
'SQLSET_NAME'
PROP_SQLSET_OWNER
VARCHAR2(30)
'SQLSET_OWNER'
PROP_SQLSET_ID
VARCHAR2(30)
'SQLSET_ID'
PROP_SQLSET_DESC
VARCHAR2(30)
'SQLSET_DESC'
Shared properties for multi-statement targets
PROP_NB_SQL
VARCHAR2(30)
'NB_STMTS'
PROP_CON_DBID
VARCHAR2(30)
'CON_DBID'
Properties for STS2 (compare STS)
PROP_SQLSET_NAME2
VARCHAR2(30)
'SQLSET_NAME2'
PROP_SQLSET_OWNER2
VARCHAR2(30)
'SQLSET_OWNER2'
PROP_SQLSET_ID2
VARCHAR2(30)
'SQLSET_ID2'
PROP_SQLSET_DESC2
VARCHAR2(30)
'SQLSET_DESC2'
PROP_NB_SQL2
VARCHAR2(30)
'NB_STMTS2'
PROP_CON_DBID2
VARCHAR2(30)
'CON_DBID2'
Automatic Workload Properties
PROP_SUM_ELAPSED
VARCHAR2(30)
'SUM_ELAPSED'
Single statement Properties
PROP_SQL_ID
VARCHAR2(30)
'SQL_ID'
PROP_PARSING_SCHEMA
VARCHAR2(30)
'PARSING_SCHEMA'
PROP_SQL_TEXT
VARCHAR2(30)
'SQL_TEXT'
PROP_TUNE_STATS
VARCHAR2(30)
'TUNE_STATS'
Parse modes for query
PARSE_MOD_SQLSET
VARCHAR2(6)
'SQLSET'
PARSE_MOD_AWR
VARCHAR2(4)
'AWR'
PARSE_MOD_CURSOR
VARCHAR2(5)
'V$SQL'
PARSE_MOD_CAPCC
VARCHAR2(8)
'V$SQLCAP'
PARSE_MOD_PROFILE
VARCHAR2(10)
'SQLPROFILE'
Task DBLINK
TASK_DBLINK_OWNER
VARCHAR2(3)
'SYS'
TASK_DBLINK_USER
VARCHAR2(7)
'SYS$UMF'
PARAM_DBLINK_TO
VARCHAR2(16)
'DATABASE_LINK_TO'
Validate Name
TYPE_STS
BINARY_INTEGER
0
TYPE_DBOP
BINARY_INTEGER
1
Validate Name
DB_TYPE_ROOT
VARCHAR2(4)
'ROOT'
DB_TYPE_PDB
VARCHAR2(3)
'PDB'
DB_TYPE_IMP
VARCHAR2(8)
'IMPORTED'
AWR View Prefixes
AWR_VIEW_ROOT
VARCHAR2(8)
'AWR_ROOT'
AWR_VIEW_PDB
VARCHAR2(7)
'AWR_PDB'
Miscellaneous
PNUM_SYSPLS_OBEY_FORCE
NUMBER
1
Data Types
TYPE property_map IS TABLE OF VARCHAR2(32767) INDEX BY VARCHAR2(32767);
TYPE task_wkldobj IS RECORD(
adv_id NUMBER, -- advisor id#
task_name VARCHAR2(30), -- name of the current task
type NUMBER, -- one of OBJ_XXX_NUM keat constants
obj_id NUMBER, -- object id of target object
props property_map, -- (name, value) pairs describing the target
cursql task_sqlobj, -- SQL object for the current statement
is_cdb BOOLEAN); -- checks if this ia cdb env
TYPE task_spaobj IS RECORD(
exec1_name VARCHAR2(32767), -- the execution name of trial one
exec1_type_num NUMBER, -- the execution type of trial one
comp_exec_name VARCHAR2(32767), -- compare exec name, max length ?
ce_obj_id NUMBER, -- obj id of comp env
target_obj_type NUMBER, -- could be SQLSET or SQL
target_obj_id NUMBER, -- id of the target object of SPA task
wkld task_wkldobj); -- has the target obj idDBMS_SQLDIAG
Dependencies
SELECT name FROM dba_dependencies WHERE referenced_name = 'DBMS_SQLTUNE_UTIL1' UNION
SELECT referenced_name FROM dba_dependencies WHERE name = 'DBMS_SQLTUNE_UTIL1'
ORDER BY 1;
Returns 55 objects
Documented
No
Exceptions
Error Code
Reason
ORA-13645
The specified execution <execution_task_name> does not exist for this task
Sets the indicated parameter to a hard-coded value if it is currently different, and returns a Boolean value indicating whether or not the value had to be changed
dbms_sqltune_util1.alter_session_parameter(pnum IN NUMBER) RETURN BOOLEAN;
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
BEGIN
IF dbms_sqltune_util1.alter_session_parameter(dbms_sqltune_util1.pnum_syspls_obey_force) THEN
dbms_output.put_line('Change Required');
ELSE
dbms_output.put_line('No Change Required');
END IF;
END;
/
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = userenv('Instance')
AND y.inst_id = userenv('Instance')
AND x.indx = y.indx
AND x.ksppinm like '_parallel_sys%';
Builds the text of the SQL statement that captures plans
from AWR based on the flags passed as parameters
dbms_sqltune_util1.get_awr_query_text(
con_dbid_bind IN BOOLEAN := FALSE,
stmt_bind IN BOOLEAN := FALSE,
begin_snap_op IN NUMBER := 0,
stats_only IN BOOLEAN := FALSE,
cmd_type_filter IN BOOLEAN := FALSE,
awr_view IN VARCHAR2 := AWR_VIEW_ROOT)
RETURN VARCHAR2;
Checks to see if the current DB is a physical standby
dbms_sqltune_util1.is_standby RETURN BOOLEAN;
BEGIN
IF dbms_sqltune_util1.is_standby THEN
dbms_output.put_line('This database is a standby');
ELSE
dbms_output.put_line('This database is not a standby');
END IF;
END;
/ This database is not a standby
Validates the execution name of an SPA task to ensure it was a Compare Performance (type id 5) while if NULL, returns the name of the most recent compare execution for the SPA task
dbms_sqltune_util1.resolve_exec_name(
task_name IN VARCHAR2,
task_owner IN VARCHAR2,
exec_name IN OUT VARCHAR2)
RETURN NUMBER;
Follows up on a call to set_session_parameter by setting it back to its initial value. Should only be called when the set function returns TRUE indicating the value was changed
dbms_sqltune_util1.restore_session_parameter(pnum IN NUMBER);