Tuning Database [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

DATABASE TUNING Dika Swadani E



5109100010



Arwin Luthfir R.



5109100028



Faizah Alkaff



5109100065



Muhammad Najib



5109100111



Teguh Jiwandana



5109100128



Margareta H



5109100150



Virky Wiradiatma



5109100190



Basis Data Lanjut – Kelas E



PENGERTIAN Database tuning adalah aktivitas mengoptimasi dan menyamaratakan performa database. Database tuning biasanya melengkapi query tuning, tapi merujuk pada desain dari file database, pemilihan DBMS, sistem operasi, dan CPU dimana DBMS berjalan.



Materi Basis Data Lanjut – Database Tuning



BAGIAN MANA YANG PERLU DITUNING? OLEH SIAPA? 



Aplikasi, oleh application designer dan developer











Database, oleh database administrator (DBA)



System Operasi (OS), oleh system administrator (sysadmin) Materi Basis Data Lanjut – Database Tuning



BAGIAN DATABASE YANG MANA YANG PERLU DITUNING?   



Memory  PGA dan SGA SGA (shared pool, large pool, buffer cache, redo log buffer, sort area size) I/O  distributing I/O, striping, multiple DBWn processes, DBWn I/O slaves. CPU  CPU utilization.



Network  Space management  extent allocation dan Oracle 



block efficiency. 



Redo log dan checkpoint  redo log file configuration,







redo entries, dan checkpoint. Rollback segment  sizing rollback segments. Mulai versi 9i, banyak bagian yang dibuat automatic Materi Basis Data Lanjut – Database Tuning



TUJUAN 



Untuk mengurangi waktu respon sistem terhadap end user, atau untuk mengurangi resource yang digunakan untuk memproses pekerjaan yang sama. Kita dapat memenuhi kedua tujuan ini dalam beberapa cara: a. b. c.



Mengurangi Beban Kerja (Reduce the Workload) Menyeimbangkan Beban Kerja (Balance the Workload) Memparalelkan Beban Kerja (Parallelize the Workload)



Materi Basis Data Lanjut – Database Tuning



BEBAN KERJA DATABASE • Daftar Query (dengan frekuensi tertentu, seperti rasio semua query/update)



• Daftar update dan frekuensinya.



• Tujuan performa untuk tiap jenis query dan update.



MENGURANGI BEBAN KERJA (REDUCE THE WORKLOAD) 











SQL Tuning secara umum melibatkan pencarian cara yang lebih efisien untuk memproses beban kerja yang sama. SQL tuning memungkinkan untuk mengubah rencana eksekusi dari suatustatement tanpa mengubah fungsionalitas untuk mengurangi pemakaian resource.Dua contoh bagaimana penggunaan resource dapat dikurangi: Jika suatu query yang biasa dieksekusi perlu untuk mengakses suatu persentase kecil dari data dalam tabel, maka query tersebut dapat dieksekusi dengan lebih efisien dengan menggunakan indeks. Dengan membuat indeks, kita dapat mengurangi jumlah pemakaian resource. Jika seorang user mencari dua puluh baris pertama dari 10000 baris yang diberikan oleh perintah pengurutan yang spesifik, dan jika query (dan perintah pengurutan) dapat dipenuhi oleh indeks, maka user tidak perlu untuk mengakses dan mengurutkan 10000 baris untuk melihat dua puluh baris. Materi Basis Data Lanjut – Database Tuning



MENYEIMBANGKAN BEBAN KERJA (BALANCE THE WORKLOAD) 



Sistem cenderung memiliki penggunaan penuh pada siang hari ketika user yang sebenarnya terhubung ke sistem dan penggunaan yang sedikit di malam hari. Jika noncritical report dan batch jobdapat dijadwalkan untuk berjalan pada malam hari dan penggunaan sistem pada siang hari dikurangi, maka hal tersebut dapat membebaskan resource agar dapat digunakan pada program-program yang lebih penting pada siang hari.



Materi Basis Data Lanjut – Database Tuning



MEMPARALELKAN BEBAN KERJA (PARALLELIZE THE WORKLOAD) 



Query-query yang mengakses sejumlah besar data (typical data warehouse queries) sering dapat diparalelkan. Hal ini sangat berguna untuk mengurangi waktu respon dalam data warehouse yang rendah konkurensinya. Akan tetapi, untuk lingkungan OLTP, yang cenderung tingggi konkurensinya, hal ini dapat merugikan user-user lain dengan meningkatkan penggunaan resource secara keseluruhan pada program.



Materi Basis Data Lanjut – Database Tuning



JENIS TUNING 



Terdapat 3 jenis tuning :



Tuning Index



Tuning Skema Konseptual



Tuning Query Materi Basis Data Lanjut – Database Tuning



TUNING INDEX  Relasi



mana untuk index field atau kombinasi field mana yang dipilih sebagai index search key.



Materi Basis Data Lanjut – Database Tuning



TUNING SKEMA KONSEPTUAL 



Skema ternormalisasi alternatif :  Kita biasa mempunyai lebih dari 1 cara untuk menguraikan skema menjadi normal form yang diinginkan (BCNF atau 3NF). Sebuah pilihan dapat dibuat pada dasar kriteria performa.







Denormalisasi : 



Kita mungkin ingin mempertimbangkan kembali penguraian skema yang dihasilkan untuk normalisasi selama proses desain skema konseptual untuk meningkatkan performa query yang mencakup atribut dari beberapa relasi sebelumnya. Materi Basis Data Lanjut – Database Tuning



TUNING SKEMA KONSEPTUAL (2)  Mempartisi



Vertikal :



Dalam kondisi tertentu, kita mungkin ingin menguraikan relasi lebih jauh untuk meningkatkan performa query yang hanya mencakup beberapa atribut. View :  Digunakan untuk menutupi perubahan dalam skema konseptual dari pengguna. 







Materi Basis Data Lanjut – Database Tuning



EXPLAIN PLAN 







adalah suatu perintah yang digunakan untuk menampilkan perintah eksekusi suatu query. Query yang dioperasikan yang didukung oleh explain plan adalah : SELECT  INSERT  UPDATE  DELETE 











Dengan memanfaatkan explain plan kita bisa melihat langkah eksekusi yang diambil oleh oracle, sehingga kita bisa meningkatkan performansi query kita. Optimizer mengambil informasi tentang obyek dan tipe dari query yang dijalankan, kemudian memberikan keputusan bagaimana suatu query akan dieksekusi. Materi Basis Data Lanjut – Database Tuning



ANALYZE Selalu jalankan command ANALYZE pada table anda untuk memberikan kepastian kalau optimizer akan memperoleh informasi tentang data tersebut.  Anda dapat melakukan ANALYZE sebuah table, index, dan bahkan cluster.  Ketika anda melakukan analyze suatu table maka oracle akan mengambil informasi berupa data dari obyek tersebut dan informasi untuk memferifikasi blok. Ini adalah perintah yang sangat berguna bukan Cuma untuk memproteksi data, tetapi juga untuk meningkatkan performansi. 



Materi Basis Data Lanjut – Database Tuning



SYNTAX ANALYZE



Materi Basis Data Lanjut – Database Tuning



CONTOH APLIKASI ANALYZE : 



 











Pertama buat table emp SQL> create table emp( a number, b varchar(10)); Table created. Kemudian masukkan sebuah data SQL> insert into emp values(1,'hallo'); 1 row created. Lakukan ANALYZE, eksekusi analyze dibawah adalah untuk melakukan validasi terhadap structure table emp. SQL> analyze table emp validate structure cascade Materi Basis Data Lanjut – Database Tuning



SQL TUNING 







 



Bagian terpenting pada tuning performansi database system adalah Tuning SQL statements. Adapun pada tuning SQL terdapat tiga langkah dasar : Identifikasi SQL statements yang memegang andil besar pada sharing workload aplikasi dan system resources, dengan mereview history SQL execution yang telah lampau yang tersedia pada system. Verifikasi bahwa execution plans yang diproduksi oleh query optimizer untuk statement-statement ini berjalan dengan baik. Mengimplementasi corrective actions untuk men-generate execution plans pada peformansi SQL statement yang buruk sehingga menjadi lebih baik.



Materi Basis Data Lanjut – Database Tuning



OPSI-OPSI PADA TUNING QUERY (1) 















Mengecek apakah query yang dibuat dapat memanfaatkan index yang telah dibuat sebelumnya. Contoh Query : SELECT E.dno FROM Employees E WHERE E.hobby = ‘Stamps’ OR E.age=‘10’ Jika sebelumnya telah dibuat index untuk hobby dan age, maka jika dilakukan query seperti contoh diatas tidak akan berpengaruh pada peforma diatas. Solusinya, buat dua query yang berbeda untuk setiap klausa WHERE yaitu E.hobby = ‘Stamps’ dan E.age=‘10’, sehingga index untuk hobby dan age dapat dimanfaatkan. Materi Basis Data Lanjut – Database Tuning



OPSI-OPSI PADA TUNING QUERY (2) Hindari penggunaan operasi-operasi yang tidak efisien.  Contoh : 



Penggunaan DISTINCT pada perintah SELECT untuk mengeliminasi record yang duplikat.  penggunaan GROUP BY dan HAVING pada query, seperti pada perintah berikut : SELECT MIN (E.age) FROM Employees E GROUP BY E.dno HAVING E.dno=12 



diubah menjadi : SELECT MIN (E.age)FROM Employees E WHERE E.dno=102 Materi Basis Data Lanjut – Database Tuning



OPSI-OPSI PADA TUNING QUERY (3) Hindari penggunaan tabel temporer pada query yang kompleks  Contoh : 



SELECT * INTO Temp FROM Employees E, Departements D WHERE E.dno = D.dno AND D.mgrname=‘Robinson’ SELECT T.dno, AVG(T.salary) FROM Temp T GROUP BY T.dno  Di tulis kembali menjadi : SELECT E.dno, AVG(E.sal) FROM Employees E, Departments D WHERE E.dno=Ddno AND D.mgrname=‘Robinson’ GROUP BY E.dno 



SEKIAN. . .



Materi Basis Data Lanjut – Database Tuning