Home » Posts tagged 'database_buffer_cache'

Tag Archives: database_buffer_cache

Oracle : SGA_MAX_SIZE, SGA_TARGET, MEMORY_TARGET……….


Dalam pekerjaan sehari-hari gw berkutat dengan database server Oracle. Versi database yang digunakan pun beragam mulai dari versi 9i (9.2.0.7), versi 10g (10.2.0.4), dan yang terakhir adalah versi 11g (11.2.0.2). Masing-masingversi memiliki karakteristik yang berbeda-beda.

Pada artikel ini, gw akan mencoba untuk tuning bagian memory/buffer database Oracle. Untuk versi 9i, ada 2 bagian memory yang perlu diatur, yaitu SGA dan PGA. SGA (System Global Area) merupakan bagian dari memory Oracle yang di-shared untuk semua proses server dan proses background. Sedangkan PGA (Private Global Area) merupakan bagian yang tidak di-shared dan hanya digunakan oleh proses client.

Oracle 9i hanya mengenal SGA dalam hal ini disetting di parameter sga_max_size. Nantinya SGA ini terdiri atas database buffer cache (digunakan untuk menyimpan sementara blok-blok data yang diambil dari database atau datafile), redo log buffer (digunakan untuk menyimpan sementara informasi redo sebelum ditulis ke dalam redo log files), shared_pool (buffer SQL statement yang dapat di-shared antar user), large_pool (buffer yang digunakan untuk proses yang besar seperti backup, recovery, I/O process, dll), streams_pool (buffer yang digunakan oleh Oracle Stream), dan java_pool (buffer untuk java purpose). Pengaturan sga_max_size memerlukan restart database untuk bisa aktif.

Server database gw (Oracle 9i) sebelumnya memiliki nilai sga_max_size sebesar 11041488720 byte atau sekitar 11 GB. Gw coba tuning menjadi 20 GB. Karena parameter sga_max_size ini baru aktif setelah database di-restart maka untuk hasilnya kayaknya perlu menunggu backup offline nanti. Minggu depan lah akan gw update lagi.

Untuk versi Oracle 10g, ada parameter lain, yaitu sga_target. Apabila parameter sga_target ini sudah diset untuk angka tertentu, maka SGA akan dapat diatur secara dinamis oleh Oracle. Nilai sga_target maksimal adalah sama dengan nilai parameter sga_max_size. Berbeda dengan pengaturan sga_max_size, pengaturan sga_target dapat dilakukan secara dinamis.

Oralce versi 11g, memiliki parameter baru, yaitu memory_target. Berbeda dengan sga_target yang hanya bisa mengatur SGA secara dinamis, parameter memory_target mampu mengatur SGA dan PGA secara dinamis. Jadi lebih dinamis lagi.