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

