Oracle改ページクエリの最適化
12332 ワード
改ページの最適化
プログラムでは、改ページSQLの性能に関する問題をまとめます。最適化されたクエリー列にサブクエリがあるときの最適化効果は明らかに です。
所要時間(s)
改ページしない
未処理前の改ページ
処理後の改ページ
位を進める
並べ替えなし
0.5
13.9
0.25
98%
並べ替え
0.5
14.25
0.296
97.9%ページなしSQL 未処理前の改ページ 処理後の改ページ ページに分けない 未処理 処理後
プログラムでは、改ページSQLの性能に関する問題をまとめます。
所要時間(s)
改ページしない
未処理前の改ページ
処理後の改ページ
位を進める
並べ替えなし
0.5
13.9
0.25
98%
並べ替え
0.5
14.25
0.296
97.9%
-- 0.5s
SELECT ROWNUM ROWINDEX,
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists (select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id)
-- 13.9s
select *
from (SELECT ROWNUM ROWINDEX,
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists
(select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id))
WHERE ROWINDEX > 20
AND ROWINDEX <= 40
-- 0.25
select *
from (SELECT ROWNUM ROWINDEX,
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists
(select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id) and ROWNUM<= 40 )
WHERE ROWINDEX > 20
並べ替え-- 0.5
SELECT ROWNUM ROWINDEX,
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists (select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id)
order by obj_id
--14.25s
select *
from (select ROWNUM ROWINDEX, tbzt from (SELECT
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists
(select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id) order by OBJ_ID))
WHERE ROWINDEX > 20
AND ROWINDEX <= 40
--0.296s
select *
from ( select ROWNUM ROWINDEX, tbzt from (SELECT
(select tbzt
from t_dw_sbbg_bgsblb
where bgsbid = t.obj_id
and bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb') tbzt
from T_SB_ZWYC_JJ T
WHERE 1 = 1
AND exists
(select bgsbid
from t_dw_sbbg_bgsblb
where bgsqdid = '47c3514c-f8ba-4c13-8262-fb3553157aeb'
and bgsbid = t.obj_id)) where 1=1 and ROWNUM<= 40 )
WHERE ROWINDEX > 20
あなたに役に立つならいいですよ。