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] > >

