显示SQL语句的内存使用情况

ZDNet软件频道 时间:2002-03-01 作者:ZDNET CHINA 特稿 |  我要评论()
本文关键词:ORACLE9I
本文利用Oracle9i的新特性,显示SQL语句内部执行过程的高度详细的资料。

ORACLE9I可以在显示RAM内存使用情况的同时提供执行计划信息,要获得这方面的信息,你需要从V$SQL出发搜集合适的SQL语句的地址。举例来说,如果你有一个关于NEW_CUSTOMER表格运作方面的疑问时,你可以运行下面的代码来获得地址。

select
address
from
v$sql
where
sql_text like '%NEW_CUSTOMER';
88BB460C
1 row selected.

获得了地址以后,你可以将他插入下列脚本之中来获得执行计划的详细资料和SQL语句的PGA内存使用状况。

select
operation,
options,
object_name name,
trunc(bytes/1024/1024) "input(MB)",
trunc(last_memory_used/1024) last_mem,
trunc(estimated_optimal_size/1024) opt_mem,
trunc(estimated_onepass_size/1024) onepass_mem,
decode(optimal_executions, null, null,
optimal_executions||'/'||onepass_executions||'/'||
multipasses_exections) "O/1/M"
from
v$sql_plan p,
v$sql_workarea w
where
p.address=w.address(+)
and
p.hash_value=w.hash_value(+)
and
p.id=w.operation_id(+)
and
p.address='88BB460C';

下面是来自这个脚本的表单:

OPERATION OPTIONS NAME input(MB)
LAST_MEM OPT_MEM ONEPASS_MEM O/1/M

------------ -------- ---- ---------

-------- ---------- ---------- ----

SELECT STATESORT GROUP BY 4582 8 16
16 26/0/0HASH JOIN SEMI 4582 5976
5194 187 16/0/0TABLE ACCESS FULL ORDERS

51TABLE ACCESS FUL LINEITEM 1000

你可以在其中看到关于执行计划和特殊内存使用方面的细节,这是ORACLE9I的一个令人激动的进步,他使得DBA可以获得关于任何SQL语句内部执行过程的高度详细的资料。

责任编辑:超凡

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134