DBA Pertemuan 11

BEBERAPA FAKTOR PENTING DALAM TUNING DATABASE ORACLE

Ada beberapa hal yang harus diperhatikan apabila kita akan melakukan performance tuning terhadap suatu database, hal-hal tersebut antara lain:

  1. Buat kesepakatan dengan user, sampai sejauh mana user akan menerima hasil dari proses tuning yang kita lakukan terhadap suatu database. Hal ini perlu untuk kita, sebagai executor, dalam pelaksaan proses tuning dalam database. Mengapa demikian? Apabila kita melaksanakan proses tuning pada database, tentunya harapannya adalah adanya peningkatan performance dari database tersebut. Untuk itulah maka perlu adanya satu batasan berupa kesepakatan dengan user database, jangan sampai suatu proses tuning database tidak di accept oleh user karena user merasa performance database yang telah kita lakukan tuning tidak significant perubahannya.
  2. Identifikasi terlebih dahulu area-area mana saja pada database yang paling critical, apabila kita tidak segera melakukan tuning terhadap database tersebut, atau dengan kata lain prioritaskan proses tuning pada area-area yang dianggap paling critical.
  3. Identifikasi bottleneck yang ada dalam sebuah atau beberapa query. Biasanya hanya karena sebuah query yang jelek menyebabkan performance menjadi turun secara keseluruhan.
  4. Jika memungkinkan, review terlebih dahulu design dari database yang akan kita tuning, apakah sudah bagus, sebelum kita melakukan tuning pada query-query terhadap database tersebut, karena apabila kita melakukan query tuning tetapi dari sisi design database kurang bagus, maka tuning pada query akan tidak optimal, bahkan mungkin tidak ada impact sama sekali.
  5. Pelajari strategi index yang sudah berjalan pada database yang akan kita tuning, dan lakukan improvement terlebih dulu pada area index ini.
  6. Jika kita rasakan index yang ada sudah optimal, lakukan identifikasi fragmentation level dari index yang ada, dan pastikan index statistic selalu up-to-date.
  7. Pelajari bagaimana cara kerja query optimizer, pelajari dan test beberapa bentuk tipe JOIN.
  8. Hindari penggunaan sub-query (select in select).
  9. Selalu gunakan UNION ALL daripada UNION, apabila memang ada operasi yang membutuhkan UNION
  10. Evaluasi penggunaan trigger yang berdampak pada performance.
  11. Hindari penggunaan SELECT ...... INTO sampai dengan kita yakin bahwa user yang terhubung ke database hanya kita sendiri atau proses yang kita lakukan hanya memerlukan waktu yang tidak lama. Jika sangat terpaksa gunakan INSERT .......SELECT.
  12. Gunakan SET NOCOUNT ON dalam semua modular code kita (Stored Procedure), untuk mengurangi informasi yang diberikan server ke client dan untuk mengurangi beban network.
  13. Jika memungkinkan, gantu semua query yang merupakan inline query menjadi stored procedure yang berparameter
  14. Jika memungkinkan, gunakan temporary table untuk mengurangi jumlah record pada saat query. Jika temporary table tersebut di join dengan permanent table, buat index di dalam temporary table tersebut.
  15. Optimalkan penggunaan loop, pindahkan semua proses yang tidak memerlukan pengulangan keluar loop.
  16. Jangan gunakan cursor jika memang tidak sangat terpaksa, TSQL tidak dioptimalkan untuk memproses 1 record dalam satu waktu

DBA Pertemuan 10

Tempat penyimpanan data yang sebenarnya
Ada 3 :
Datafiles : Data aktual di database
Redo Log files :
Komponen penting dalam recovery database (mencatat semua perubahan database)
Perubahan dicatat dalam redo log entry
Redo log entry dapat disimpan dalam metode archivelog à archived redo log file (bisa manual / otomatis) oleh ARCH
Info redo log : V$LOGFILE, V$LOG, V$ARCHIVED_LOG
Control Files :
Menyimpan informasi dimana lokasi file-file yang dibutuhkan database
Informasi akan berubah saat menambah dan merubah struktur fisik database
Lokasi : dalam CONTROL_FILE dalam file init.ora
Default ada 3 buah dalam lokasi yang sama (C:\oracle\oradata\sdm)
Penamaan cntrlndbname.ctl (nama database di DB_NAME)
Isi : SCN, lokasi datafile, lokasi redo log file, nama database, ukuran database
Melihat isi : V$CONTROLFILE. Terdapat 2 kolom, STATUS dan NAME. Jika nilainya tidak ada maka pada kolom status akan bernilai INVALID / NULL.
Bisa disimpan dalam tempat yang berbeda (multiplexing control file)
File- file yang lainya
Parameter file :
Berisi spesifikasi instance
Ada 2 :
Static parameter : format dalam ini/SID/.ora. Text sederhana yang dipanggil saat database dimulai
Dynamic parameter : file biner untuk respon perintah user
Password file :
Menyimpan data user dan password / user privileges utk start dan shutdown database
Kalo dalam keadaan database mati maka bisa dicari secara offline lewat sistem operasi
Archieved Redo Log files :
Menggandakan online redo log file yang penuh (untuk recovery) secara offline
SGA (System Global Area / Shared Global Area)
Menyimpan informasi database dari proses database
Berisi data dan control information dari oracle server dalam virtual memori pada komputer yang bersangkutan
SQL> SHOW SGA;
Bersifat dinamis
Ukuran dalam SGA_MAX_SIZE
SHARED POOL
terbagi menjadi 2 :
Dictionary cache :
menyimpan data dictionary yang sering di query (berulang2 semakin cepat). Berisi informasi tentang database files, tables, indexes, columns, users, privileges, dan objek lain
Library cache :
Menyimpan perintah SQL dan rencana bagaimana SQL dieksekusi. Terbagi 2 yaitu shared SQL (menyimpan SQL) dan shared PL/SQL (menyimpan PL/SQL)
ukuran : dalam SHARED_POOL_SIZE dalam file init.ora
ALTER SYSTEM SET SHARED_POOL_SIXE = 64M;
DATABASE BUFFER CACHE :
menyimpan data hasil perintah SQL
kalo data yang diminta berulang-ulang à kecepatan query meningkat & mempercepat perubahan data di memori
tidak langsung disimpan dalam disk
ukuran : dalam parameter DB_BLOCK_SIZE dan DB_BLOCK_BUFFER dalam file init.ora
Disimpan dalam sub2 : DB_CACHE_SIZE (ukuran buffer cachenya saja, harus selalu ada dan tdk bisa di set 0), DB_KEEP_CACHE_SIZE (ukuran yg sering diminta), DB_RECYCLE_CACHE_SIZE (yang sdh terhapus)
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
Menampilkan V$DB_CACHE_ADVICE
REDO LOG BUFFER :
Catatan semua perubahan dalam database (untuk proses recovery)
Disimpan dalam Redo Log File secara fisik
Ukuran : dalam LOG_BUFFER dalam file init.ora
LARGE POOL :
Area optional dalam SGA
Untuk memori session (UGA) untuk shared server
I/O server processes
Backup dan restore utk RMAN
Pararel execution message buffers (PARALLEL_AUTOMATIC_TUNING set to TRUE)
Ukuran dalam LARGE_POOL_SIZE
JAVA POOL :
Berisi java command
Dibutuhkan saat menginstal java
Ukuran dalam JAVA_POOL_SIZE

PGA (Program Global Area)
Membantu proses user
Memory tidak dapat dishare
Menyimpan nilai variable, kolom yang diurutkan, dll
Menyimpan nilai variable untuk perintah SQL à beda user bisa beda nilai
Dialokasikan saat proses dibuat
Ditutup ketika proses selesai
Digunakan hanya oleh 1 proses
Terdiri dari
Private SQL Area
Session Memory
SQL Work Areas
Background Proses
DBWn : Database Writer
Background proses yang menulis dari Buffer Cache ke disk (datafile)
Penulisannya saat :
server proses butuh ruangan di buffer cache untuk menyimpan data
dipicu oleh LGWR
saat timeout setiap 3 detik
Tablespace Offline
Tablespace read only
Table DROP or TRUNCATE
Tablespace BEGIN BACKUP
Memperbolehkan sampai 20 DBWR (DBW0-DBW9 dan DBWa-DBWj)
Ukuran : dalam DB_WRITER_PROCESSES

DBA Pertemuan 9

DATA CONECTIVITY

Database Connectivity merupakan sebuah fasilitas komputer yang memungkinkan server client untuk berkomunikasi dengan database server pengguna lain. Database management system (DBMS) menyediakan fasilitas untuk menyimpan, mengorganisir, dan mengambil data.
Sebagian besar aplikasi bisnis menyimpan data dalam database relasional. Aplikasi dapat mengakses informasi database dengan menggunakan Java Database Connectivity (JDBC) API.
Hal yang perlu diperhatikan dalam Database Connectivity:
- Knowing the business, not only technology
- Centralized or Distributed
- Thin client or fat client
- Database gateway
- Network Trafic
- Database design
- New technology (XML, Java, etc)
- Webbase or dekstop
* Need provider?
* Availability?
* Reduce down time : – runtime maintenance
- feature DBMS to promote
- automate DBA function
- high speed function
- technology hardware
DBA Tools :
- Modeling & design
- Change management
- Table Editor
- Performance management
- Backup and recovery
- PT warehouse BI
- Programing & development
- Miscellaneous
Elemen – elemen dalam Database Connectivity
Database adalah repositori dimana data disimpan untuk perusahaan. Java EE mengakses aplikasi database relasional melalui API JDBC. Untuk prosedur administrasi. JDBC Connection Pool adalah sekelompok koneksi dapat digunakan kembali untuk database tertentu untuk prosedur administrasi.
Pooling Connection
Koneksi database yang terbatas dan mahal dapat memakan waktu yang tidak proposional dan lama untuk menciptakan relatif terhadap operasi yang dilakukan pada mereka. Hal ini sangat tidak efisien untuk sebuah aplikasi untuk membuat menutup koneksi database jika perlu untuk memperbaharui database.
ODBC (Open Database Connectivity)
Sebuah standar terbuka untuk konektivitas antar mesin basis data. Standar ini menyediakan API yang dapat digunakan untuk menjalankan dan mengoneksikan sebuah aplikasi dengan sbeuah sistem managemen basis data (SMBD). Pada Desainer ODBC membuatnya dengan tujuan agar ODBC terbebas dari penggunaan bahasa pemrograman tertentu, sistem manajemen basis data tertentu, dan sistem operasi tertentu.
Komponen utama ODBC
  • ODBC API : Sekumpulan panggilan fungsi kode – kode kesalahan dan sintaksis SQL yang mendefinisikan bagaimana data dalam sebuah DBMS diakses.
  • Driver basis data ODBC : driver yang mampu memproses panggilan fungsi ODBC untuk sebuah DBMS tertentu.
  • ODBC Driver Manager : yang bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi

DBA Pertemuan 8

Data Movement
Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data – data dari database yang berupa data, indeks, grand, schema, dan lain – lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.

Data movement terdiri dari 2 bagian besar yaitu :
  • Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
  • Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]
Jika dilihat, load tersebut behubungan dengan import dan upload berhubungan dengan export
Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna.
Upload Parameter
  • Limit [membatasi beberapa record]
  • Sample [mencari sample yang telah ditentukan]
  • When [berdasarkan kondisi]
Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.
Bulk Data Movement (Software Pendukung)
  • ETL [Extrat Transform Load], software yang focus terhadap data warehouse
  • Replication and Propagation, software yang memonitoring source database dan target, dan yang dihasilkan oleh software ini adalah pencatatatn log.
Perlu diperhatikan juga hak akses dalam load & unload, import & export minimal adalah akses select.
Distribution Database
Dalam distribution database terdapat 3 istilah yaitu :
  • Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
  • Isolation [stand alone], untuk tabel khusus (privacy) itu terpisah dari user.
  • Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.
Lawan dari database terdistribusi adalah database terpusat. Server yang terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya.
Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh – jauh dari permasalahan traffic network. Dan yang tidak boleh dilupakan adalah request dan respon.

Postingan Lebih Baru Postingan Lama Beranda