v$sysstat中workarea executions - optimal 与具体操作的联系。
optimal 一般来说,意义是指所有操作都在内存中进行,就叫 Optimal 。
真的是这样吗,让我们来试试:
[php]
在某一个会话中:
scott@MYTWO> connect scott/ifclwx
已连接。
scott@MYTWO> set autotrace traceonly exp stat;
scott@MYTWO> select distinct * from big_table;
已选择1000000行。
已用时间: 00: 01: 19.07
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=33535 Card=1000000 Bytes=100000000)
1 0 SORT (UNIQUE) (Cost=33535 Card=1000000 Bytes=100000000)
2 1 TABLE ACCESS (FULL) OF 'BIG_TABLE' (Cost=2571 Card=1000000 Bytes=100000000)
Statistics
----------------------------------------------------------
654 recursive calls
4 db block gets
26505 consistent gets
54000 physical reads
120 redo size
64834270 bytes sent via SQL*Net to client
733829 bytes received via SQL*Net from client
66668 SQL*Net roundtrips to/from client
10 sorts (memory)
1 sorts (disk)
1000000 rows processed
在另一个会话中观察工作区的占用情况:
sys@MYTWO> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- --------------
_pga_max_size big integer 524288000
pga_aggregate_target big integer 10485760
另外一个隐藏参数的值:
NAME VALUE ISDEFAULT ISMOD ISADJ
---------------------------------------- ------------------------- --------- ---------- -----
_smm_max_size 512 FALSE FALSE FALSE
sys@MYTWO> select * from v$sysstat where name like 'workarea executions%';
STATISTIC# NAME CLASS VALUE
---------- ---------------------------------------- ---------- --------------
227 workarea executions - optimal 64 319
228 workarea executions - onepass 64 0
229 workarea executions - multipass 64 0
[/php]
我的疑惑:
刚才的明明有一个磁盘排序,为什么在V$SYSSTAT中 workarea executions - onepass 或 workarea executions - multipass 没有增加。
××××××××××××××××××××××××××××××××××××××××××××××××××
相关文章