大家帮忙看看下面的语句如何优化比较好:
select * from
(select T0.NSID as ColAlias1, T0.ID as ColAlias2, T0.VERSION as ColAlias3, T0.NAME as ColAlias4, T0.FIRSTNAME as ColAlias5, T0.BIRTHDATE as ColAlias6, T0.ISCUSTOMER as ColAlias7, T0.ISBROKER as ColAlias8, T0.ISINSURABLE as ColAlias9, T0.ISHEALTHCAREPROVIDER as ColAlias10, T0.SSN as ColAlias11
from AWFACTOR T0
where (T0.H_ISKILLED = 0)
and ( (T0.H_CLID=218108948) or (T0.H_CLID=218111885))
Order By T0.NAME, T0.FIRSTNAME)
where ROWNUM <= 20;
用EM做了个Snapshot然后ADDM,Oracle说这个语句占用了大量的物理内存,分页占用了大量的虚拟内存
查了一下确实是AWFACTOR表有50w行数据,约束条件后的结果集也接近50w行,但是要只取出前20行来,有没有一个办法直接取出前20行,而不是先将全部结果集放入buffer cache,再取出前20行啊?????
谢谢
|