Thursday, June 21, 2007

oracle

Hallo Semuanya,

Pernahkah teman mengalami masa dimana aplikasi yang kita buat ketika
dijalankan pertama kali kecepatannya seperti kilat namun ternyata
setelah 3 atau 4 bulan semakin lelet. bahkan seperti keong?

Saya coba share beberapa tip agar kita dapat membuat database dengan
disain yang baik sehingga database yang kita buat bisa mengakomodasi
semua kebutuhan user tanpa mengorbankan performa dari database yang
di disain.

Ada beberapa hal yang perlu diketahui dalam melakukan desain sebuah
database:
1.Setiap database yang dibuat merupakan inherit (turunan) dari
database model. Ini berakibat pada setiap perubahan dari isi
database model akan berpengaruh pada database yang kita create.Kalau dalam database Oracle, selain Log dan Oradata ada juga yang biasa disebut dengan TableSpace. Setiap tabel yang kita buat, akan diassign ke suatu TableSpace. Table Space ini bisa kita buat sendiri atau secara default akan di create oleh system.
2.Untuk keperluan performa, Letak file database dengan letak
file log dari database sebisa mungkin di pisahkan secara fisik (file
MDF dan File LDF disimpan di partisi yang berbeda), contoh :

CREATE DATABASE [JunkDB]
ON PRIMARY
(NAME = N'JunkDBData',
FILENAME = N'C:\JunkDB.MDF',
SIZE = 10, -- kb, mb, gb, tb
FILEGROWTH = 10%, -- kb, mb, gb, tb or %
MAXSIZE = 15) -- kb, mb, gb, tb
LOG ON
(NAME = N'JunkDBLog',
FILENAME = N' D:\JunkDB_Log.LDF ',
SIZE = 10,
FILEGROWTH = 10%
MAXSIZE = UNLIMITED)

3.Default filegrowth adalah 10% dan Default MAXSIZE adalah
UNLIMITED. Untuk kemudahan dalam hal maintenance data hendaknya
lakukan perhitungan capacity planning sehingga didapat ukuran yang
tepat untuk menentukan ukuran database, filegrowth dan maxsize.
Kesalahan penentuan filegrowth akan sangat menggangu performa.

4.Gunakan autogrowth secara minimal. Lebih baik gunakan fix
growth. Sesuai perhitungan capacity planning.

5.Jika anda menggunakan Server dengan disk array maka gunakan
RAID 1+0 dari pada RAID 5 atau RAID 1.

6.Gunakan sp_detach_db dan sp_attach_db untuk melakukan
pemindahan data dari database yang kita buat. Proses ini lebih cepat
jika kita bermaksud menginstall database dari satu server ke server
lain dibandingkan dengan melakukan DTS antara Server.

7.Jika kita ingin mengubah property database yang kita buat
kita bisa lakukan dengan menggunakan ALTER DATABASE

8.Sekali lagi tentukan CAPACITY PLANING dengan benar. Contohnya
a.Tentukan berapa ukuran data dari table master yang akan
disimpan. Misal untuk data karyawan NIP char(10), Nama Char(50) x 50
(Data Jumlah karyawan) maka kita akan dapatkan data ukuran file
karyawan.
b.Ditambah dengan berapa banyak data transaksi yang akan
dilakukan perhari kerja. Dari sini kita bisa tahu dalam setahun
ukuran data kita akan sebesar apa.
c.Perkirakan juga ukuran data yang akan di simpan (tidak boleh
dihapus atau di backup) berapa banyak.
d.Dari sini kita akan bisa memprediksi growth dari database
kita.

Mudah mudahan ini bermanfaat. selain desain database yang baik
tentunya desain table, Query dan Store procedure, index serta coding yang baik dengan memanfaatkan pola-pola design yang sistematis dan tepat guna (Design Patterns) juga harus diperhatikan.

No comments: