Here is how to create an STS and populate it with SQL statements matching a particular SQL ID:
exec dbms_sqltune.create_sqlset(sqlset_name=>'mysts');
DECLARE
my_cur dbms_sqltune.sqlset_cursor;
BEGIN
OPEN my_cur FOR
SELECT VALUE(x)
FROM TABLE( dbms_sqltune.select_cursor_cache(basic_filter=>'sql_id = ''45wmakdh9ak9s''')) x;
dbms_sqltune.load_sqlset(sqlset_name => 'mysts', populate_cursor => my_cur);
END;
/
Check the contents of the STS:
set lines 200 col name format a20 col owner format a20 col created format a30 col statement_count format 999999999999 select name,owner,created,statement_count from dba_sqlset where name = 'mysts';
And check the details of the statements packed in the STS, like this:
select sql_id,plan_timestamp,parsing_schema_name,plan_hash_value,round(elapsed_time/1000000) "duration in seconds",cpu_time,buffer_gets,disk_reads,executions from dba_sqlset_statements where sqlset_name = 'mysts' fetch first 3 rows only;
| SQL_ID | PLAN_TIMESTAMP | PARSING_SCHEMA_NAME | PLAN_HASH_VALUE | duration in seconds | CPU_TIME | BUFFER_GETS | DISK_READS | EXECUTIONS |
|---|---|---|---|---|---|---|---|---|
| 45wmakdh9ak9s | 18.09.2018 23:48:21 | SCOTT | 4026264003 | 7718 | 1331447472 | 336095417 | 828189 | 40286996 |
No comments:
Post a Comment