Makasih pencerahannya juga mas ujang. Tapi kira kira apa ya yang menyebabkan 
truncate pada data yang kecil malah lebih lambat. :)

Thanks, 

Tora Fahrudin  http://torafahrudin.wordpress.com

(-- ^_^ --)


--- On Tue, 3/24/09, Ujang Jaenudin <[email protected]> wrote:

From: Ujang Jaenudin <[email protected]>
Subject: Re: [indo-oracle] Re: Proses yang dijalankan ketika Truncate Data
To: [email protected]
Date: Tuesday, March 24, 2009, 9:09 PM











    
            create table t10 (a number, b number, c number) tablespace users;



select extent_id,file_ id,block_ id,blocks from dba_extents where

segment_name= 'T10';



insert into t10 values(1,1,1) ;

6x

commit;



alter system dump datafile 4 block min 953 block max 961;



Block header dump:  0x010003bd

 Object id on Block? Y

 seg/obj: 0xf839  csc: 0x00.13b5f4  itc: 2  flg: E  typ: 1 - DATA

     brn: 0  bdba: 0x10003b9 ver: 0x01 opc: 0

     inc: 0  exflg: 0



Itl           Xid                  Uba         Flag  Lck        Scn/Fsc

0x01   0x000e.01d.0000024e  0x07000548.00c8. 1e  --U-    6  fsc 0x0000.0013b672

0x02   0x0000.000.00000000  0x00000000.0000. 00  ----    0  fsc 0x0000.00000000



data_block_dump, data header at 0x7700a64

============ ===

tsiz: 0x1f98

hsiz: 0x1e

pbl: 0x07700a64

bdba: 0x010003bd

     76543210

flag=------- -

ntab=1

nrow=6

frre=-1

fsbo=0x1e

fseo=0x1f50

avsp=0x1f32

tosp=0x1f32

0xe:pti[0]      nrow=6  offs=0

0x12:pri[0]     offs=0x1f8c

0x14:pri[1]     offs=0x1f80

0x16:pri[2]     offs=0x1f74

0x18:pri[3]     offs=0x1f68

0x1a:pri[4]     offs=0x1f5c

0x1c:pri[5]     offs=0x1f50

block_row_dump:

tab 0, row 0, @0x1f8c

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 1, @0x1f80

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 2, @0x1f74

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 3, @0x1f68

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 4, @0x1f5c

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 5, @0x1f50

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

end_of_block_ dump



truncate table t10;



alter system dump datafile 4 block min 953 block max 961;



Block header dump:  0x010003bd

 Object id on Block? Y

 seg/obj: 0xf839  csc: 0x00.13b5f4  itc: 2  flg: E  typ: 1 - DATA

     brn: 0  bdba: 0x10003b9 ver: 0x01 opc: 0

     inc: 0  exflg: 0



Itl           Xid                  Uba         Flag  Lck        Scn/Fsc

0x01   0x000e.01d.0000024e  0x07000548.00c8. 1e  --U-    6  fsc 0x0000.0013b672

0x02   0x0000.000.00000000  0x00000000.0000. 00  ----    0  fsc 0x0000.00000000



data_block_dump, data header at 0x7700a64

============ ===

tsiz: 0x1f98

hsiz: 0x1e

pbl: 0x07700a64

bdba: 0x010003bd

     76543210

flag=------- -

ntab=1

nrow=6

frre=-1

fsbo=0x1e

fseo=0x1f50

avsp=0x1f32

tosp=0x1f32

0xe:pti[0]      nrow=6  offs=0

0x12:pri[0]     offs=0x1f8c

0x14:pri[1]     offs=0x1f80

0x16:pri[2]     offs=0x1f74

0x18:pri[3]     offs=0x1f68

0x1a:pri[4]     offs=0x1f5c

0x1c:pri[5]     offs=0x1f50

block_row_dump:

tab 0, row 0, @0x1f8c

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 1, @0x1f80

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 2, @0x1f74

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 3, @0x1f68

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 4, @0x1f5c

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

tab 0, row 5, @0x1f50

tl: 12 fb: --H-FL-- lb: 0x1  cc: 3

col  0: [ 2]  c1 02

col  1: [ 2]  c1 02

col  2: [ 2]  c1 02

end_of_block_ dump



kalau diperhatikan, sebenarnya isi data (row data masih ada) cuman

oracle hanya set flag pada header object/segment tsb (di block header

sini antara block id 953-954 karena by default di BMB ini oracle

allocate 2 block untuk headernya, sedangkan 1 block block id 955 mulai

digunakan data, indikasinya dari "   unformatted: 5       total: 8

    first useful block: 3      "), supaya block2 yg pernah kepakai

data bisa direplace.



malah segment yg ditruncate ini bisa direcover dengan bantuan BBED

asalkan belum keduluan oleh block cleanout (beberapa test case

sepertinya jalan, not sure in the real world).



2009/3/25 ** Tora Fahrudin ** <tora_ifstt03@ yahoo.com>:

> Ok makasih mas bowo,

>

> Tapi saya masih bingung kok semakin banyak data justru proses TRUNCATE jadi 
> lebih cepat, sedangkan semakin sedikit data malah semakin lambat. Kenapa 
> tidak linear dengan jumlah datanya.

>

> Makasih mas bowo.

>

>

> Thanks,

>

> Tora Fahrudin  http://torafahrudin .wordpress. com

>

> (-- ^_^ --)

>

>

> --- On Tue, 3/24/09, Yulius Wibowo <yulius_wibowo@ yahoo.com> wrote:

>

> From: Yulius Wibowo <yulius_wibowo@ yahoo.com>

> Subject: [indo-oracle] Re: Proses yang dijalankan ketika Truncate Data

> To: indo-oracle@ yahoogroups. com

> Date: Tuesday, March 24, 2009, 6:15 PM

>

>

>

>

>

>

>

>

>

>

>

>

>            Tora san,

>

>

>

> TRUNCATE: adalah perintah DDL (Data Definition Language).

>

> Yg diupdate adalah informasi dari tablenya di dalam data dictionary.

>

> - Jumlah extent di reset ke minimum extent.

>

> - High Water Mark (HWM) di reset ke bagian depan/awal. Sehingga data yg ada 
> di atas HWM dianggap tidak ada/kosong.

>

> - Semua bekas extent akan di-release, dan bisa dipakai ulang oleh segment ybs 
> atau segment yg lain.

>

>

>

> DELETE: adalah perintah DML (Data Manipulation Language)

>

> - Jumlah extent tetap.

>

> - HWM tidak berubah

>

> - Yg dihapus adalah record2nya (sesuai dgn kriteria/WHERE clause-nya)

>

>

>

> Analognya sama dengan kalau kita memformat Floppy Disk:

>

> - Format biasa = DELETE

>

> ---> Setiap sector dari FD akan dihapus satu persatu

>

> ---> butuh waktu lama sesuai dengan jumlah sektor

>

>

>

> - Quick format = TRUNCATE

>

> ---> Yg dihapus hanya FAT-nya saja

>

> ---> butuh waktu cepat

>

>

>

> b...@jp

>

>

>

> --- In indo-oracle@ yahoogroups. com, ** Tora Fahrudin ** <tora_ifstt03@ ...> 
> wrote:

>

>>

>

>>

>

>> Dear all,

>

>>

>

>> Salam untuk teman teman semua, maaf gak pernah nongol kok tiba tiba nanya :D

>

>>

>

>> Begini, ada rekan yang tau tidak bagaimana proses Truncate pada sebuah tabel 
>> itu?

>

>>

>

>> Saya agak heran dengan perlakuan truncate pada tabel yang sama dengan isi 
>> data 5 baris, 10 baris, 20 baris, 50 baris, 100 baris.

>

>>

>

>> Yang mengejutkan adalah waktu / response time dari perintah TRUNCATE 
>> tersebut menunjukkan bahwa trendnya justru tidak sebanding dengan jumlah 
>> data. Justru semakin kecil baris data yang ada, waktu TRUNCATE malah lebih 
>> lama.

>

>>

>

>> Kira kira apa ya penyebabnya. Percobaan sudah di coba berkali kali, bahkan 
>> skenario di rubah yaitu jumlah baris 100 d TRUNCATE. 50 baris di TRUNCATE 
>> dst tetap menghasilkan response time yang sama -> TRUNCATE lebih lama jika 
>> jumlah data semakin sedikit.

>

>>

>

>> Mohon bantuan rekan rekan semua. Terima kasih ^_^

>


 

      

    
    
        
         
        
        








        


        
        


      

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

Kirim email ke