andi,

first_rows(30) adalah hint dari sebuah query.

namun untuk benar tidaknya hint tsb berguna/tepat sasaran, bisa
diperhatikan beberapa point berikut :
- sekarang optimizer_mode apa?? (biasanya kalau choose, jika
optimizer_feature nya >= 9.2.0 (??) dan ada statistik, bakal dianggap
ALL_ROWS a.k.a throughput)
- query tsb dimaksudkan untuk reporting (throughput) ataukah
transactional (response time)
- jika kebutuhannya transactional, dgn first_rows akan sangat
membantu, dan biasanya jika dgn first_rows akan ada perlakuan
memaksakan index tertentu dalam eksekusion plan nya.
- tapi jika untuk kebutuhan reporting....hm... musti lihat-lihat lagi
dgn realtime eksekusionnya mana yg lebih cepet mengeluarkan result,
karena biasanya kalau reporting penggennya keluar data mendekati 100%,
so kadang dgn index belum tentu akan membantu...

-- 
regards
ujang


On 11/27/07, Andi Afandi <[EMAIL PROTECTED]> wrote:
> Dear all friends,
>   Saya menjalankan SQL Tuning Advisor dengan menggunakan TOAD dan hasilnya
> ada rekomendasi seperti di bawah berikut perbandingan dgn yang original.
>   Pertanyaan saya;
> Apa bedanya kedua Query tersebut..?
> Saya hanya melihat beda pada '/*+ FIRST_ROWS(30) */' di rekomendasinya.
> Bukankah itu hanyalah sebuah comment....?
> Dilihat dari costnya, yang rekomendasi cuma 7, ini jauh sekali
> dibandingkan dgn yang original yang costnya di atas 200.
> Apakah dengan mengganti query yang original dgn yang rekomendasi akan benar2
> save cost performance.....?
>
> Original query:
> ---------------
>   SELECT opl_function.OPL_RoundUp(nvl(dl.fk_sys_curr_deal,
> dlDuo.Fk_Sys_Curr_Deal), sumSlv.TOTAL_PAY_AMT) TOTAL_PAY_AMT_RND
> FROM
> (
> SELECT
> NVL(FK_DEAL, 0) FK_DEAL,
> NVL(FK_DEAL_ITEM, 0) FK_DEAL_ITEM,
> PRD,
> NTH_TERM,
> SUM(PAY_AMT) TOTAL_PAY_AMT
> FROM
> TB_OP_DEAL_SLV
> GROUP BY
> FK_DEAL_ITEM,
> FK_DEAL,
> PRD,
> NTH_TERM
> ) sumSlv
> left join TB_OP_DEAL_ITEM itm
>      on sumSlv.fk_deal_item = itm.pk_deal_item
> left join TB_OP_DEAL dl
>      on itm.fk_deal = dl.pk_deal
> left join TB_OP_DEAL dlDuo
>      on sumSlv.fk_deal = dlDuo.Pk_Deal
>
>   Recommended query:
> ------------------
>   SELECT /*+ FIRST_ROWS(30) */
> opl_function.OPL_RoundUp(nvl(dl.fk_sys_curr_deal, dlDuo.Fk_Sys_Curr_Deal),
> sumSlv.TOTAL_PAY_AMT) TOTAL_PAY_AMT_RND
> FROM
> (
> SELECT
> NVL(FK_DEAL, 0) FK_DEAL,
> NVL(FK_DEAL_ITEM, 0) FK_DEAL_ITEM,
> PRD,
> NTH_TERM,
> SUM(PAY_AMT) TOTAL_PAY_AMT
> FROM TB_OP_DEAL_SLV
> GROUP BY
> FK_DEAL_ITEM,
> FK_DEAL,
> PRD,
> NTH_TERM
> ) sumSlv
> left join TB_OP_DEAL_ITEM itm
> on sumSlv.fk_deal_item = itm.pk_deal_item
> left join TB_OP_DEAL dl
> on itm.fk_deal = dl.pk_deal
> left join TB_OP_DEAL dlDuo
> on sumSlv.fk_deal = dlDuo.Pk_Deal
>
>   Please do not refer to any URL....
>
> Thank you guys...
>
> Afandi
>
>
>
> ---------------------------------
> Be a better sports nut! Let your teams follow you with Yahoo Mobile. Try it
> now.
>
> [Non-text portions of this message have been removed]
>
>

Kirim email ke