Home » Posts tagged 'index'

Tag Archives: index

Oracle 11g index key compression for SAP R/3 4.7 almost completed


Setelah akhir bulan April 2012 lalu gw tuntasin pekerjaan untuk upgrade database Oracle dari 10g (10.2.0.4) menjadi 11g (11.2.0.2), maka sejak akhir bulan April dimulailah pekerjaan untuk melakukan kompresi. Index key compression menjadi pekerjaan yang pertama dilakukan.

Dimulai dari beberapa index yang kecil lalu menjangkau index yang lebih besar. Dan sampai hari kemaren (22 Mei 2012) hampir semua index (yang major dan digunakan) sudah terkompress. Masih tersisa 2 index terbesar (ACCTCR~0 dan VBOX~0) yang belum terkompress, index-index tabel yg tidak boleh dikompres seperti index milik tabel CDHDR, CDCLS, VBDATA, dll.

Proses index compression ini sendiri menggunakan tools dari SAP, BRTOOLS 7.20 patch 13 (patch terakhir pada saat tulisan ini dibuat adalah patch 23) dan dilakukan secara online. Hasil dari index key compression sendiri memberikan freespace yang cukup besar, yaitu lebih dari 1,6 TB. Dari sisi performance sendiri terlihat peningkatan performance query yang sangat signifikan karena extent dan block menjadi lebih kecil, penggunaan data buffer menjadi lebih efisien dan bahkan tidak ada peningkatan konsumsi memory dan CPU.

Secara umum, gw sangat satisfied dengan performance dari index key compression di Oracle 11g ini

Script untuk rebuild index (kasus ora-01502)


Seperti postingan gw sebelumnya (), berikut adalah script untuk melakukan rebuild index-index yang berada dalam state “UNUSABLE“. Script kecilĀ  sql sebagai berikut :

select 'alter index '||owner||'.'||index_name||' rebuild;' from
dba_indexes where STATUS = 'UNUSABLE';

Berikut adalah hasilnya :

‘ALTERINDEX’||OWNER||’.’||INDEX_NAME||’REBUILD;’
——————————————————————————–
alter index SAPWPR.ACCTIT~Z01 rebuild;
alter index SAPWPR.S514~VAB rebuild;
alter index SAPWPR.TCJ_POSITIONS~0 rebuild;
alter index SAPWPR.S055~VAB rebuild;
alter index SAPWPR.S055~0 rebuild;
alter index SAPWPR.GLPCA~7 rebuild;
alter index SAPWPR.GLPCA~3 rebuild;
alter index SAPWPR.GLPCA~2 rebuild;
alter index SAPWPR.FMEP~W rebuild;
alter index SAPWPR.FMEP~V rebuild;
alter index SAPWPR.FMEP~R rebuild;

‘ALTERINDEX’||OWNER||’.’||INDEX_NAME||’REBUILD;’
——————————————————————————–
alter index SAPWPR.FMEP~M rebuild;
alter index SAPWPR.FMEP~K rebuild;
alter index SAPWPR.ACCTIT~1 rebuild;
alter index SAPWPR.ACCTIT~0 rebuild;

15 rows selected.

Tinggal modifikasi sedikit menjadi seperti berikut :

alter index SAPWPR.”ACCTIT~Z01″ rebuild online compress;
alter index SAPWPR.”S514~VAB” rebuild online compress;
alter index SAPWPR.”TCJ_POSITIONS~0″ rebuild online compress;
alter index SAPWPR.”S055~VAB” rebuild online compress;
alter index SAPWPR.”S055~0″ rebuild online compress;
alter index SAPWPR.”GLPCA~7″ rebuild online compress;
alter index SAPWPR.”GLPCA~3″ rebuild online compress;
alter index SAPWPR.”GLPCA~2″ rebuild online compress;
alter index SAPWPR.”FMEP~W” rebuild online compress;
alter index SAPWPR.”FMEP~V” rebuild online compress;
alter index SAPWPR.”FMEP~R” rebuild online compress;
alter index SAPWPR.”FMEP~M” rebuild online compress;
alter index SAPWPR.”FMEP~K” rebuild online compress;
alter index SAPWPR.”ACCTIT~1″ rebuild online compress;
alter index SAPWPR.”ACCTIT~0″ rebuild online compress;

Bisa juga dijadikan script sql (misal buat file rebuild_index.sql) dan berisi seperti berikut :

sqlplus ‘/as sysdba’
spool /oracle/WPR/index_rebuild_log.txt
alter index SAPWPR.”ACCTIT~Z01″ rebuild online compress;
alter index SAPWPR.”S514~VAB” rebuild online compress;
alter index SAPWPR.”TCJ_POSITIONS~0″ rebuild online compress;
alter index SAPWPR.”S055~VAB” rebuild online compress;
alter index SAPWPR.”S055~0″ rebuild online compress;
alter index SAPWPR.”GLPCA~7″ rebuild online compress;
alter index SAPWPR.”GLPCA~3″ rebuild online compress;
alter index SAPWPR.”GLPCA~2″ rebuild online compress;
alter index SAPWPR.”FMEP~W” rebuild online compress;
alter index SAPWPR.”FMEP~V” rebuild online compress;
alter index SAPWPR.”FMEP~R” rebuild online compress;
alter index SAPWPR.”FMEP~M” rebuild online compress;
alter index SAPWPR.”FMEP~K” rebuild online compress;
alter index SAPWPR.”ACCTIT~1″ rebuild online compress;
alter index SAPWPR.”ACCTIT~0″ rebuild online compress;
spool off
exit

Selamat mencoba !!

Oracle : ORA-01502 on SAP R/3 4.7 Ent + Oracle 11g


Setelah beberapa bulan yang lalu melakukan upgrade Oracle dari versi 9i ke 11g dan melakukan beberapa kali aktivasi advanced compression (dalam hal ini table compression dan index compression), team support melakukan testing pada beberapa fungsi seperti create Sales Order lewat VA01, dll.

Namun dalam testing sering kali terjadi error,yaitu ORA-01502. Lebih lengkapnya seperti ini :

“(FUNCTION)”, or declared in the procedure’s RAISING clause.
To prevent the exception, note the following:
Database error text……..: “ORA-01502: index ‘SAPWPR.FMEP~0’ or partition of
such index is in unusable state”
Internal call code………: “[RSQL/INSR/FMEP ]”
Please check the entries in the system log (Transaction SM21).

Beberapa index (sampai saat ini yang menjadi kasus adalah primary index, yaitu index yang mengandung primary key) mengalami state unstable. Solusi yang didapatkan adalah melakukan drop dan recreate index atau melakukan rebuild index. Karena index ini adalah primary index dari SAP maka tidak bisa dilakukan drop dan recreate index. Satu-satunya cara adalah melakukan rebuild index. Dan cara ini berhasil dengan baik…so far…

Offline Reorg or Online Reorg ? Which one ?


Salah satu tugas seorang DBA adalah melakukan optimasi dan tuning performance database server yang dimaintain. Salah satu cara yang bisa dilakukan untuk tuning performance adalah melakukan reorganize tabel dan atau index. Reorganize tabel atau index dimaksudkan untuk mengatur kembali urutan data yang ditulis didalam tabel atau index. Dalam melakukan reorganize tabel atau index terdapat pilihan untuk melakukannya dalam keadaan offline dan keadaan online.

Reorganize dalam keadaan offline adalah melakukan reorg dalam posisi tabel atau index tidak boleh diakses alias dibawa offline. Cara ini lebih cepat dibandingkan keadaan offline namun tabel atau index tidak bisa/boleh diakses selama kegiatan reorg berlangsung.

Sedangkan reorganize dalam keadaan online (kebalikan offline) adalah melakukan reorg dalam posisi tabel atau index boleh diakses selama kegiatan reorg berlangsung. Cara ini lebih lambat karena tabel atau index bisa saja dalam posisi diakses oleh user. Keuntungannya adalah tabel atau index masih bisa terus diakses oleh user.

Sekarang adalah menentukan kapan memakai reorganize offline dan kapan melakukan reorganize online. Semua tergantung kebutuhan Anda. Apabila tabel atau index tetap dipakai terus menerus, maka mau tidak mau Anda harus memakai reorganize online dengan konsekuensi akses ke tabel dan index lebih lambat dan proses reorg juga lebih lama. Saya pribadi lebih menyarankan untuk melakukan reorg secara offline. Selain lebih cepat, data dalam tabel atau index lebih bisa dipastikan integritasnya

Oracle : Reorganization dan Index Rebuilding


Ada 2 hal pelajaran yang gw dapet beberapa hari ini. Yang pertama adalah bahwa table reorganization tujuan utamanya adalah untuk claim wasted space di harddisk. Jadi proses reorganisasi tabel digunakan untuk meng-klaim space-space harddisk yang terbuang. Reorganisasi juga membantu untuk mempercepat akses ke tabel walaupun tidak banyak.

Second lesson is index rebuilding. Dalam beberapa hari ini keluhan user adalah akses ke beberapa tabel sangat lambat. Padahal tabel tidak terlalu besar, hanya beberapa GB. Akhirnya diputuskan untuk rebuild index. Semua index milik tabel itu di-rebuild. Hal ini ternyata sangat membantu program dan mempercepat akses ke tabel dan index tersebut.

Selama ini gw beranggapan bahwa reorganization adalah tools terbaik baik untuk klaim wasted space dan membantu mempercepat akses. Setelah membaca beberapa literatur dari SAP dan tentang cost based optimizer ternyata best practices nya adalah table reorgnization menggunakan temporary tablespace dan rebuild index.

Moral Story : Always study and check your Oracle scratchpad…