Hallo Hendra,
Sepengetahuan saya, untuk mengetahui suatu index harus
di rebuild atau tidak yang di periksa adalah indexnya
bukan tabelnya.
untuk mengetahui suatu index harus direbuild yg harus
dilakukan adalah mengecek INDEX WASTAGE dari suatu
index tersebut. Jika nilai index wastage > 30 % harus
dilakukan rebuild.
Berikut ini saya ilustrasikan caranya :
1. Buat tabel dan index
CREATE TABLE xyz4(A VARCHAR2(100));
CREATE INDEX xyz4_idx ON xyz4(a);
2. Memasukkan nilai awal
BEGIN
FOR i IN 1..1000 LOOP
INSERT INTO xyz4 VALUES('ABC');
END LOOP;
END;
/
COMMIT;
3. update nilai tabel
UPDATE xyz4 SET a = 'ABCDEFGHIJKLMNOPQR';
COMMIT;
4. Lakukan perintah ANALYZE untuk mengambil statistic
index
ANALYZE INDEX xyz4_idx VALIDATE STRUCTURE;
5. Hitung/cari info INDEX WASTAGE dengan perintah
berikut :
SELECT name, (DEL_LF_ROWS_LEN/LF_ROWS_LEN) * 100
AS wastage
FROM index_stats;
Jika nilai > 30 % lakukan rebuild
6. lakukan REBUILD index
ALTER INDEX xyz4_idx REBUILD;
Setelah rebuild periksa lagi apakah index wastage
masih tinggi ?. Biasanya setelah di rebuild index
wastage menjadi 0.
ALTER INDEX xyz4_idx REBUILD;
ANALYZE INDEX xyz4_idx VALIDATE STRUCTURE;
SELECT name, (DEL_LF_ROWS_LEN/LF_ROWS_LEN) * 100
AS wastage
FROM index_stats;
Demikian penjelasan dari saya semoga membantu.
CMIIW
Bambang Sutejo
www.klik-oracle.web.id
--- hendra chen <[EMAIL PROTECTED]> menulis:
>
> Dear gurus,
>
> Mau tanya donk,
> ada yang tau gimana cara cek suatu table membutuhkan
> rebuild index atau ga ?
>
> terima kasih atas bantuan nya.
>
>
> Best Regards,
>
> Hendra
>
>
>
>
>
> Yahoo! Toolbar is now powered with Search
> Assist.Download it now!
> http://sg.toolbar.yahoo.com/
>
>
___________________________________________________________________________
Yahoo! sekarang memiliki alamat Email baru.
Dapatkan nama yang selalu Anda inginkan di domain baru @ymail dan @rocketmail.
Cepat sebelum diambil orang lain!
http://mail.promotions.yahoo.com/newdomains/id/