dear kiman,

di leaf node itu yg terisi adalah index key + rowid, yang sudah barang
tentu sewaktu proses index maintenance  sudah dilakukan sorting,
makanya leaf block sewaktu insert (malah sebelum commit) sudah ada
index (leaf) block split (kondisi ini tergantung berapa banyak data yg
diinsert).

karena arsitektur oracle yg ACID compliance dan full MVCC, saya pikir
mau ndak mau memang musti begitu alur proses index maintenance. dan
konsep block, extents, segment berbeda antar database.

kemarin pun saya coba test drive untuk INSERT performance di 2
database berbeda, antara mysql (myisam) dengan oracle ini pada mesin
yg sama dan filesystem yg sama...
oracle dapet 600tps dan mysql bisa dapet 8000tps.

walaupun secara "marketing" bahwa di oracle by default adalah
mengadopsi "INSERT DELAYED" karena adanya buffer cache dan dbwr
nulisnya secara batch, namun "index maintenance" nya tidak demikian,
kecuali jika anda melalukukan "direct path insert" dimana oracle akan
melakukan index maintenance pada akhir transaksi.

direct path insert:
- sqlloader (direct=true)
- insert /*+ append */ into.... select ....
- ada yg menambahkan ??

kalo insert /*+ append */ into...values
tidak adakn dianggap direct path insert


-- 
thanks and regards
ujang | oracle dba | mysql dba
pt. visi solusi teknologi | jakarta
http://www.visitek.co.id
http://ora62.wordpress.com


2009/1/31 kiman_keren <[email protected]>:
> Thx buat teman2 yg posting disini. sangat detail dan jelas. namun saya
> ingin membuatnya simple.
>
> begitu 1000 data dimasukkan (insert query) lalu commit, maka 1000 data
> tersebut akan masuk ke leaf node nya. di leaf node, data yang
> tersimpan tsb, diambil dari rowse nya atau dari page files nya ya? lalu
> apakah akan dilakukan pengurutan data (reordering)?
>
> FYI: Saya developing di Oracle 10g Express dan SQL Server 2005
> Express, ternyata hasilnya mengejutkan. SQL Server menang, dengan
> AUTOCOMMIT dimatikan. jika AUTOCOMMIT dihidupkan, maka kecepatannya
> tidak jauh berbeda dengan Oracle.
>
>

Kirim email ke