Detailnya ada di sini http://www.dba-oracle.com/art_otn_cbo.htm dan di
dokumentasi Oracle.Secara singkatnya spt ini:

   - Ada 2 jenis optimasi, rule-based dan cost-based.
   - Rule based cuma liat struktur, misalnya index yg ada.
   - Cost based memperhatikan banyak hal, misalnya statistik dari datanya.
   Misalnya gini: dalam hal join antara TabelA (data sedikit) dan tabelB
   (datanya banyaaaak), eksekusi query bakal lebih cepet kalo loop utk mencari
   datanya dilakukan terhadap tabelA dulu (bayangkan aja kalo kita bikin
   program untuk eksekusi SQLnya). Nah jumlah row di masing2 tabel ini disimpan
   dalam statistik.
   - Statistik di Oracle setau saya (ingatan dari 9i) mesti diupdate manual.
   Mungkin 10g ke atas dah otomatis.
   - Secara umum, rule based menghasilkan plan yg "biasa2" saja, gak akan
   sebagus cost-based.Di lain pihak, cost-based bisa menghasilkan query yg
   lebih bagus atau lebih jelek dari yg rule-based (statistik megang peranan
   penting).
   - Cost based optimizer bisa dioverride dengan menggunakan "hint" (semacam
   cara utk ngasi tau Oracle, misalnya, utk selalu menggunakan index XYZ). Hint
   biasanya diharamkan karena penggunaannya memang bisa bikin plan lebih
   optimal utk satu variasi data, tapi bisa bikin nggak optimal utk variasi2
   lainnya.


hth
panji

2009/9/7 martinus j wahyudi <[email protected]>

>
>
> Betul mas, juga buat mas stefanus, costnya jomplang banget. Yang query
> pertama klo dilihat di execution plannya malah jadil full table scan.
>
> Btw mas, bisa dijelaskan lebih jauh engga maksud dari ini:
>
> "cost-based optimizer nggak cuma tergantung pada struktur, tapi juga
> tergantung datanya (statistik datanya tepatnya)."
>
> mohon dicerahkan.
>
> Sincerely,
> Martin
>
> _
>


[Non-text portions of this message have been removed]

Kirim email ke