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]

