当我看到这种快速查看要在Oracle下进行调整的SQL语句发生的情况时,我感到非常高兴。将下面的第一个SQL语句更改为SELECT语句,并在其中保留该提示。
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL;
SELECT * FROM TABLE(dbms_xplan.display_cursor( NULL, NULL, 'RUNSTATS_LAST'))
;
PLAN_TABLE_OUTPUT
-----------------------------------------------------
SQL_ID 5z36y0tq909a8, child number 0
-------------------------------------
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL
Plan hash value: 272002086
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
---------------------------------------------------------------------------------------------
| 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.02 | 3 | 2 |
---------------------------------------------------------------------------------------------
12 rows selected.
哪里:
- 电子行是估计的行。
- A行是实际的行。
- A-Time是实际时间。
- 缓冲区是实际的缓冲区。
如果估算的计划与实际的执行情况相差一个数量级,您就会知道自己有问题。