Ada 1 query yg plg signifikan di statspack Anda (sql
dengan hash_value = 2889914980), dari total cpu 378s,
300s terpakai.
Dari statspack diketahui bahwa sql ini dijalankan
2,997 kali, dengan rata2 mengakses 2,972.7
blocks/exec.
Dari execution plan query tersebut di tkprof,
perhatikan bahwa akses ke table LED_DETAIL menggunakan
FULL TABLE SCANS.
Coba Anda cari tahu apakah perlu ada penambahan index
disini. Perhatikan kolom2 yg dipakai di WHERE clause,
apakah mungkin ada kolom/kombinasi kolom yg cukup
membatasi lingkup pencarian? (kolom:
gl_code,sl_code,curr_code)
Satu hal lagi, query Anda sebaiknya dipisah menjadi 2
query (tanpa union) berdasarkan kondisi dibawah.
Soalnya saya lihat sebenarnya cuma salah satu bagian
dari query yg dijalankan pada satu saat, tetapi bgn yg
lain ikut dijalankan:
- :base_curr = :curr_code jalan
- :base_curr <> :curr_code
regards,
tomi
exec plan:
---------
SELECT STATEMENT GOAL: CHOOSE
SORT (UNIQUE)
UNION-ALL
FILTER
NESTED LOOPS
TABLE ACCESS GOAL: ANALYZED (FULL) OF
'LED_DETAIL'
TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID)
OF 'LED_HEAD'
INDEX (UNIQUE SCAN) OF 'SYS_C0015833'
(UNIQUE)
query:
-----
select b.due_date, b.ref_no1,
b.doc_date,a.seq_no,item_no,sub_item_no,
dc_flag,
decode(:os_type,'R',decode(dc_flag,'C',-1*nvl(curr_amt,0),
nvl(curr_amt,0)),
decode(dc_flag,'D',-1*nvl(curr_amt,0),nvl(curr_amt,0)))
curr_amt,
decode(:os_type,'R',decode(dc_flag,'C',-1*nvl(os_curr_amt,0),
nvl(os_curr_amt,0)),
decode(dc_flag,'D',-1*nvl(os_curr_amt,0),nvl(os_curr_amt,0)))
os_curr_amt,
rtrim(doc_code)||'/'||doc_no doc_no, due_date, 'Y'
curr_flag
from led_detail A, led_head B
where B.doc_date <= :as_of_date
and a.seq_no = b.seq_no
and b.doc_status = 'C'
and a.gl_code = :gl_code
and a.sl_code = :sl_code
and b.comp_code = :comp_code
and a.curr_code = :curr_code
and :base_curr <> :curr_code
union
select b.due_date, b.ref_no1,
b.doc_date,a.seq_no,item_no,sub_item_no,
dc_flag,
decode(:os_type,'R',decode(dc_flag,'C',-1*nvl(ac_amt,0),
nvl(ac_amt,0)),
decode(dc_flag,'D',-1*nvl(ac_amt,0),nvl(ac_amt,0)))
curr_amt,
decode(:os_type,'R',decode(dc_flag,'C',-1*nvl(os_ac_amt,0),
nvl(os_ac_amt,0)),
decode(dc_flag,'D',-1*nvl(os_ac_amt,0),nvl(os_ac_amt,0)))
os_curr_amt,
rtrim(doc_code)||'/'||doc_no doc_no, due_date, 'N'
curr_flag
from led_detail A, led_head B
where B.doc_date <= :as_of_date
and a.seq_no = b.seq_no
and b.doc_status = 'C'
and a.gl_code = :gl_code
and a.sl_code = :sl_code
and b.comp_code = :comp_code
and :base_curr = :curr_code
order by 1
--- null zero <[EMAIL PROTECTED]> wrote:
> pak tomi dan pak bowo,
>
> sorry kemaren salah kirim attachment, ini saya
> running tkprof dan statspack
> untuk report jalan di client sekitar 11 minutes
> (kemarin waktu load server
> peak, nyampe 20 mins).
>
> ?:
> - apakah sudah optimize sql saya?
> - adakah sugesti yang lain?
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.lizt.org (NEW)
-----------------------------------------------
Bergabung dengan Indonesia Thin Client User Groups,
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.vze.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/indo-oracle/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/