2026-05-01 07:25:46
This commit is contained in:
+42
-23
@@ -1,37 +1,54 @@
|
||||
/*
|
||||
* vplesnila 2025-05 - creation
|
||||
* Based on Vishal Gupta script
|
||||
* and other documents:
|
||||
* - https://www.linkedin.com/pulse/efficiently-converting-sql-statements-sqlids-oracle-database-pandey-fwmff
|
||||
* - https://franckpachot.medium.com/oracle-dba-sql-plan-baseline-sql-id-and-plan-hash-value-8ffa811a7c68
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display all SQL PLAN Baselines
|
||||
* Parameters :
|
||||
*
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 12-Jun-12 Vishal Gupta First created
|
||||
*
|
||||
*
|
||||
* Usage: @sql_plan_baselines.sql <where_clause>
|
||||
* Examples:
|
||||
* @sql_plan_baselines.sql "1=1"
|
||||
* @sql_plan_baselines.sql "accepted='YES' and Last_Modified >(sysdate-1)"
|
||||
* @sql_plan_baselines.sql "plan_hash_value=237994299"
|
||||
* @sql_plan_baselines.sql "sql_id='g3gwhhx6r00qc'"
|
||||
*/
|
||||
|
||||
COLUMN sql_id HEADING "SQL_ID" FORMAT a14
|
||||
COLUMN sql_handle HEADING "SQL Handle" FORMAT a20
|
||||
COLUMN plan_hash_value HEADING 'Plan|Hash Value' FORMAT 9999999999
|
||||
COLUMN plan_name HEADING "Plan Name" FORMAT a30
|
||||
COLUMN enabled HEADING "Ena|bled" FORMAT a4
|
||||
COLUMN accepted HEADING "Accep|ted" FORMAT a5
|
||||
COLUMN fixed HEADING "Fixed" FORMAT a5
|
||||
COLUMN reproduced HEADING "Repro|duced" FORMAT a5
|
||||
COLUMN autopurge HEADING "Auto|Purge" FORMAT a5
|
||||
COLUMN optimizer_cost HEADING "Optimizer|Cost" FORMAT 99999999
|
||||
COLUMN creator HEADING "Creator" FORMAT a12
|
||||
COLUMN created HEADING "Created" FORMAT a15
|
||||
COLUMN last_modified HEADING "LastModified" FORMAT a15
|
||||
COLUMN last_executed HEADING "LastExecuted" FORMAT a15
|
||||
COLUMN last_verified HEADING "LastVerified" FORMAT a15
|
||||
COLUMN creator HEADING "Creator" FORMAT a13
|
||||
COLUMN created HEADING "Created" FORMAT a19
|
||||
COLUMN last_modified HEADING "LastModified" FORMAT a19
|
||||
COLUMN last_executed HEADING "LastExecuted" FORMAT a19
|
||||
COLUMN last_verified HEADING "LastVerified" FORMAT a19
|
||||
COLUMN force_matching HEADING "Force|Match" FORMAT a5
|
||||
COLUMN signature HEADING "Signature" FORMAT 999999999999999999999
|
||||
COLUMN description HEADING "Description" FORMAT a50
|
||||
|
||||
BREAK ON name ON CATEGORY ON created ON last_modified ON type ON status ON force_matching ON signature ON description
|
||||
|
||||
SELECT spb.sql_handle
|
||||
select * from (
|
||||
SELECT
|
||||
dbms_sql_translator.sql_id(sql_text) sql_id
|
||||
,(select
|
||||
case
|
||||
when instr(plan_table_output, ':') > 0 then to_number(substr(plan_table_output, instr(plan_table_output, ':', -1) + 1))
|
||||
else to_number(plan_table_output)
|
||||
end as last_value
|
||||
from
|
||||
(
|
||||
select * from table(dbms_xplan.DISPLAY_SQL_PLAN_BASELINE(sql_handle,plan_name)) where plan_table_output like 'Plan hash value: %'
|
||||
)
|
||||
) plan_hash_value
|
||||
, spb.sql_handle
|
||||
, spb.plan_name
|
||||
, spb.origin
|
||||
, spb.enabled
|
||||
@@ -41,12 +58,14 @@ SELECT spb.sql_handle
|
||||
, spb.autopurge
|
||||
, spb.optimizer_cost
|
||||
, spb.creator
|
||||
, to_char(spb.created,'DD-MON-YY HH24:MI') created
|
||||
, to_char(spb.last_modified,'DD-MON-YY HH24:MI') last_modified
|
||||
, to_char(spb.last_executed,'DD-MON-YY HH24:MI') last_executed
|
||||
, to_char(spb.last_verified,'DD-MON-YY HH24:MI') last_verified
|
||||
, to_char(spb.created,'YYYY-MM-DD HH24:MI:SS') created
|
||||
, to_char(spb.last_modified,'YYYY-MM-DD HH24:MI:SS') last_modified
|
||||
, to_char(spb.last_executed,'YYYY-MM-DD HH24:MI:SS') last_executed
|
||||
, to_char(spb.last_verified,'YYYY-MM-DD HH24:MI:SS') last_verified
|
||||
, spb.description
|
||||
FROM dba_sql_plan_baselines spb
|
||||
ORDER BY spb.last_modified DESC
|
||||
)
|
||||
WHERE
|
||||
&1
|
||||
ORDER BY last_modified DESC
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user