SQL> select client_name, status,attributes,service_name from dba_autotask_client;
CLIENT_NAME STATUS ATTRIBUTES SERVICE_NAME
---------------------------------------- -------- ------------------------------------------------------------ --------------
auto optimizer stats collection ENABLED ON BY DEFAULT, VOLATILE, SAFE TO KILL
auto space advisor ENABLED ON BY DEFAULT, VOLATILE, SAFE TO KILL
sql tuning advisor ENABLED ONCE PER WINDOW, ON BY DEFAULT, VOLATILE, SAFE TO KILL
select * from dba_advisor_findings where task_name like 'SYS_AUTO_SQL_TUNING_TASK';
spool suggest.txt
select dbms_sqltune.report_auto_tuning_task(
(select min(execution_name) from dba_advisor_findings
where task_name like 'SYS_AUTO_SQL_TUNING_TASK'),
(select max(execution_name) from dba_advisor_findings
where task_name like 'SYS_AUTO_SQL_TUNING_TASK')
) from dual;
spool off
-------------------------------------------------------------------------------
SQLs with SQL Profile Findings Ordered by Maximum Benefit, Object ID
-------------------------------------------------------------------------------
execution name object ID SQL ID benefit
------------------------------ ---------- ------------- --------
EXEC_10224 6517 fpf9ztf0yw0fw 96.91%
EXEC_10177 6462 g10n36gghz1rr 93.80%
EXEC_10177 6465 cbmzd29dvsx8j 92.21%
EXEC_10177 6479 7ptuqb2nxxzrv 92.02%
EXEC_10177 6456 1s3w0r29yv8cv 90.92%
EXEC_10112 6437 d0cdpbm2v4ubu 89.95%
EXEC_10177 6466 2m5atu0grvtmq 84.04%
EXEC_10112 6442 0kyb2cb1ra5aq 84.02%
EXEC_10177 6469 c9fckvj9d4muu 82.77%
EXEC_10112 6439 72yf8srrpkwmh 80.15%
....
Original Plan With SQL Profile % Improved
------------- ---------------- ----------
Completion Status: COMPLETE COMPLETE
Elapsed Time (s): .065773 .000795 98.79 %
CPU Time (s): .06569 .000799 98.78 %
User I/O Time (s): .000178 0 100 %
Buffer Gets: 1973 154 92.19 %
Physical Read Requests: 10 0 100 %
Physical Write Requests: 0 0
Physical Read Bytes: 82739 0 100 %
Physical Write Bytes: 0 0
Rows Processed: 28 28
Fetches: 28 28
Executions: 1 1
-----
Notes
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
1- Original With Adjusted Cost
------------------------------
Plan hash value: 977673319
------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 40 | 6 (17)| 00:00:01 |
| 1 | SORT ORDER BY | | 2 | 40 | 6 (17)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | USER$ | 2 | 40 | 2 (0)| 00:00:01 |
|* 3 | INDEX SKIP SCAN | I_USER2 | 2 | | 1 (0)| 00:00:01 |
|* 4 | TABLE ACCESS BY INDEX ROWID| OBJ$ | 1 | 10 | 3 (0)| 00:00:01 |
|* 5 | INDEX SKIP SCAN | I_OBJ4 | 1518 | | 2 (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("U"."TYPE#"=1)
filter("U"."TYPE#"=1 AND EXISTS (SELECT /*+ PUSH_SUBQ INDEX_SS ("O" "I_OBJ4") */ 0 FROM "SYS"."OBJ$" "O" WHERE ("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2) AND"O"."OWNER#"=:B1 AND "O"."TYPE#"<>5))
4 - filter(("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2)) 5 - access("O"."OWNER#"=:B1) filter("O"."OWNER#"=:B1 AND "O"."TYPE#"<>5)
2- Using SQL Profile
--------------------
Plan hash value: 2080390714
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 82 (2)| 00:00:01 |
| 1 | SORT ORDER BY | | 1 | 20 | 82 (2)| 00:00:01 |
|* 2 | FILTER | | | | | |
|* 3 | TABLE ACCESS FULL | USER$ | 39 | 780 | 4 (0)| 00:00:01 |
|* 4 | TABLE ACCESS BY INDEX ROWID| OBJ$ | 1 | 10 | 4 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN | I_OBJ2 | | | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter( EXISTS (SELECT 0 FROM "SYS"."OBJ$" "O" WHERE "O"."OWNER#"=:B1
AND ("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2) AND "O"."TYPE#"<>5)) 3 - filter("U"."TYPE#"=1) 4 - filter(("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2)) 5 - access("O"."OWNER#"=:B1) filter("O"."TYPE#"<>5)SQL> set autot traceonly ;
SELECT u.NAME FROM sys.USER$ u WHERE u.TYPE# = 1 AND EXISTS
(SELECT owner# FROM sys.obj$ o
WHERE o.OWNER# = u.USER# AND (o.TYPE# <> 5)
AND NOT ((o.TYPE# = 2) AND (BITAND(o.flags, 2) = 2))
AND NOT ((o.TYPE# = 1) AND (BITAND(o.flags, 2) =
2))) ORDER BY 1;
28 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 977673319
------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 61 (2)| 00:00:01 |
| 1 | SORT ORDER BY | | 1 | 20 | 61 (2)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | USER$ | 2 | 40 | 2 (0)| 00:00:01 |
|* 3 | INDEX SKIP SCAN | I_USER2 | 2 | | 1 (0)| 00:00:01 |
|* 4 | TABLE ACCESS BY INDEX ROWID| OBJ$ | 1 | 10 | 3 (0)| 00:00:01 |
|* 5 | INDEX SKIP SCAN | I_OBJ4 | | | 2 (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("U"."TYPE#"=1)
filter("U"."TYPE#"=1 AND EXISTS (SELECT 0 FROM "SYS"."OBJ$" "O" WHERE ("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2) AND "O"."OWNER#"=:B1 AND "O"."TYPE#"<>5)) 4 - filter(("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2)) 5 - access("O"."OWNER#"=:B1) filter("O"."OWNER#"=:B1 AND "O"."TYPE#"<>5)Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
2062 consistent gets
0 physical reads
0 redo size
883 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
28 rows processed---逻辑读2062.
execute dbms_sqltune.accept_sql_profile(task_name =>'SYS_AUTO_SQL_TUNING_TASK', object_id => 6465, task_owner =>'SYS', replace => TRUE);
Execution Plan
----------------------------------------------------------
Plan hash value: 2080390714
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 20 | 82 (2)| 00:00:01 |
| 1 | SORT ORDER BY | | 1 | 20 | 82 (2)| 00:00:01 |
|* 2 | FILTER | | | | | |
|* 3 | TABLE ACCESS FULL | USER$ | 39 | 780 | 4 (0)| 00:00:01 |
|* 4 | TABLE ACCESS BY INDEX ROWID| OBJ$ | 1 | 10 | 4 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN | I_OBJ2 | | | 3 (0)| 00:00:01 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter( EXISTS (SELECT 0 FROM "SYS"."OBJ$" "O" WHERE "O"."OWNER#"=:B1
AND ("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2) AND "O"."TYPE#"<>5)) 3 - filter("U"."TYPE#"=1) 4 - filter(("O"."TYPE#"<>1 OR BITAND("O"."FLAGS",2)<>2) AND ("O"."TYPE#"<>2 OR BITAND("O"."FLAGS",2)<>2)) 5 - access("O"."OWNER#"=:B1) filter("O"."TYPE#"<>5)
Note
-----
- SQL profile "SYS_SQLPROF_013f7fba46910000" used for this statement
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
157 consistent gets
0 physical reads
0 redo size
883 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
28 rows processed
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-764886/ ,如需转载,请注明出处,否则将追究法律责任。