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