У меня есть запрос, скажите, пожалуйста, как можно его оптимизировать?
select distinct
trunc(dw.mdf_date) as mdf_date
,dw.dss_id
,dw.raid
,dw.host_type
,dw.volume_name
,dw.volume_size
,dw.prv
,listagg(dw.hba_wwn,',' on overflow truncate '...' without count) within group (order by dw.hba_wwn) as wwn
from
dss_wwn dw
where
dw.volume_name not in ('ADMIN')
and dw.volume_name not like '.%'
and dw.hba_wwn is not null
and not exists (select 1 from wwn shw where shw.wwn = dw.hba_wwn and shw.dic_type_eqp_id = 4 and rownum = 1)
and not exists (select 1 from dss_vmhdd shw where shw.wwid = dw.disk_wwn and rownum = 1)
group by
trunc(dw.mdf_date)
,dw.dss_id
,dw.raid
,dw.host_type
,dw.volume_name
,dw.volume_size
,dw.prv
Этот запрос работает в течение 23 секунд.
И если вы закомментируете эту строку, это работает быстро 0,2 секунды
and not exists (select 1 from wwn shw where shw.wwn = dw.hba_wwn and shw.dic_type_eqp_id = 4 and rownum = 1)
select count(*) from DSS_WWN --100000
select count(*) from WWN t --13000
UPD @Gro Спасибо за ваш ответ, действительно после того, как я удалил rownum = 1 запрос выполнен за 0,4 секунды