Makalah Optimasi Query Terdistribusi

12 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

SISTEM TERDISTRIBUSI

“DATABASE MANAGEMENT SYSTEM

PADA SISTEM TERDISTRIBUSI”

Untuk memenuhi tugas mata kuliah Manajemen Sistem Terditribusi Oleh Diana Laily fithri, M.kom

Disusun Oleh:

Frista Yogie T

(201253065)

Wisnu Anshori

(201253079)

Aryntha Apriyantho

(201253106)

Andi Juli Aji

(201253183)

Nugroho Edi Laksono

(201253074)

SISTEM INFORMASI

UNIVERSITAS MURIA KUDUS

2014

(2)

Daftar Isi

Daftar Isi... 2 BAB I... 3 A.Latar belakang...3 B.Tujuan... 3 C.Perumusan Masalah...3 BAB II... 4

A.Pengenalan Optimasi Query Terdistribusi...4

BAB III... 11

A.Kesimpulan...11

(3)

BAB I

PENDAHULUAN

A. Latar belakang

Proses optimasi pada query dalam sebuah relasi database menjadi pekerjaan yang ’mahal’ saat berurusan dengan relasi dalam jumlah besar. Mencari cara terbaik dengan waktu eksekusi tercepat adalah sebuah kewajiban semenjak strategi yang salah diterapkan dalam sebuah. Dengan meningkatnya kompleksitas sebuah database, hal tersebut menjadi penting bagi metode-metode query optimizer untuk mengadopsi sebuah algoritma yang membutuhkan cost rendah dalam hal waktu eksekusi.

B. Tujuan

Untuk menemukan jalan akses yang termurah untuk meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk melakukan pencarian jalan akses

C. Perumusan Masalah

− Pengenalan Optimasi Query Terdistribusi − Optimasi pada perintah SQL

(4)

BAB II

PEMBAHASAN

A. Pengenalan Optimasi Query Terdistribusi

Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan dari sumber tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari suatu query untuk membuat evaluasi tersebut menjadi lebih efektif .

Optimasi Query

Mencari urutan optimal dari operasi query. Strategi yang terpilih diharapkan dapat meminimalisasi biaya yang harus dikeluarkan dalam pengeksekusian query. Biaya eksekusi merupakan kombinasi bobot dari I/O, CPU, dan biaya komunikasi.

Query optimizer, sebuah modul software yang mendukung optimasi query terdiri dari tiga komponen, yaitu :

(5)

Search Space

Merupakan sekumpulan alternatif perencanaan eksekusi yang merepresentasikan query. Seluruh alternatif adalah ekuivalen, yaitu memberikan hasil yang sama dengan urutan pengoperasian, pengimplementasian, dan performance yang berbeda.

Representasi dari query tersebut dibentuk dalam suatu operator trees yang dapat dibuat dengan aturan transformasi.

Cost Model

Cost Model memprediksi biaya yang harus dikeluarkan dari suatu query yang akan dieksekusi. Terdiri dari cost function, statistic database, dan formula.

Search Strategy

Search strategy mengeksplorasi search space dan memilih strategi terbaik dari alternatif yang ada menggunakan cost model. Search Strategy yang dapat digunakan adalah dynamic programming yang bersifat determenistik, di mana menghasilkan solusi terbaik, dan randomized strategies (seperti Iterative Improvement dan Simulated Annealing) yang berkonsentrasi pada pencarian solusi optimal dengan menghindari biaya tinggi dalam optimasi.

(6)

Algoritma INGRES

Algoritma INGRES menggunakan algoritma optimasi dinamis yang memecah query kalkulus ke dalam bagian yang lebih kecil secara rekursif. Mengombinasikan dua tahapan yaitu dekomposisi dan optimasi kalkulus-aljabar

INGRES query processor :

Algoritma Sistem R

Sistem R merupakan optimasi query statis yang didasarkan pada exhaustive search dari ruang solusi yang ada. Input untuk optimizer dengan sistem R adalah pohon relasi aljabar yang dihasilkan dari dekomposisi dari sebuah query SQL. Kemudian output dari sistem merupakan rencana eksekusi yang mengimplementasikan pohon relasi aljabar yang optimal.Optimizer menetapkan biaya (dalam hal waktu) dari masing-masing pohon kandidat dan mempertahankan pohon dengan biaya yang terkecil

Join Ordering

• Join ordering merupakan aspek yang penting dalam suatu optimasi query, terlebih pada query terdistribusi. Join ordering menjadi lebih penting ketika query merupakan query terdistribusi karena akan mempengaruhi communication time. Join ordering

(7)

dapat dilakukan secara langsung, maupun dengan mengombinasikan dengan semijoins di mana akan meminimalisasi communication cost.

Optimasi query terdistribusi

Algoritma INGRES terdistribusi

Fungsi objektif dari algoritma ini adalah untuk meminimalisasi kombinasi baik communication time maupun response time. Algoritma ini juga mendapat keuntungan pada fragmentasi, tetapi hanya fragmentasi horizontal. Input untuk algoritma

pemrosesan query ini dinyatakan dalam calculus relational-tupel dan skema informasi (tipe network, lokasi dan ukuran masing-masing site).

B. Optimasi pada perintah SQL

Desain aplikasi saja tidak cukup untuk meningkatkan kerja harus didukung dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting. Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari optimasi query adalah

meminimalkan “jalur” pencarian untuk menemukan data yang disimpan dalam lokasi fisik.

Tips Optimasi Query MySql

Index

Index adalah objek pada MySQL yang berisi data yang terurut - dari nilai-nilai pada satu atau lebih field dalam suatu table. Sama seperti daftar isi pada sebuah buku, index terutama digunakan untuk mempercepat pencarian terhadap suatu set data dengan kondisi tertentu - yang melibatkan kombinasi field yang sudah didefinisikan dalam suatu index.

Menentukan Tipe Data

Menentukan tipe data yang tepat memerlukan ketelitian dan analisa yang baik. Sebagai contoh, kita perlu mengetahui kapan kita menggunakan tipe data char atau varchar. Keduanya menampung karakter, bednya char menyediakan ukuran

(8)

penyimpanan yang tetap (fixed-length), sedangkan varchar menyediakan ukuran penyimpanan sesuai dengan isi data (variable-length).

Jangan Izinkan Allow Null

Jika memungkinkan, kurangi penggunaan field yang memperbolehkan nilai null. Sebagai gantinya, dapat memberikan nilai default pada field tersebut. Nilai null kadang rancu dalam intepretasi programer dan dapat mengakibatkan kesalahan logika pemrograman. Selain itu, field null mengonsumsi byte tambahan sehingga menambah beban pada query yang mengaksesnya.

Query yang Mudah Terbaca

Query panjang yang ditulis dalam 1 baris jelas akan menyulitkan modifi kasi dan pemahaman, akan jauh lebih baik jika menuliskan query dalam format yang mudah dicerna. Pemilihan huruf besar dan kecil juga dapat mempermudah pembacaan, misalnya dengan konsisten menuliskan keyword SQL dalam huruf kapital, dan tambahkan komentar bilamana diperlukan.

Hindari SELECT *

SELECT * digunakan untuk melakukan query semua field yang terdapat pada sebuah table, tetapi jika hanya ingin memproses field tertentu, maka sebaiknya Anda

menuliskan field yang ingin diakses saja, sehingga query Anda menjadi SELECT field1, field2, field3 dan seterusnya (jangan pedulikan kode program yang menjadi lebih panjang!). Hal ini akan mengurangi beban lalu lintas jaringan, terutama jika table tersebut memiliki banyak field dan berukuran besar.

Batasi ORDER BY

Penggunaan ORDER BY yang berfungsi untuk mengurutkan data, ternyata memiliki konsekuensi menambah beban query, karena akan menambah satu proses lagi, yaitu proses sort. Karena itu gunakan ORDER BY hanya jika benar-benar dibutuhkan oleh aplikasi Anda. Atau jika dimungkinkan, Anda dapat melakukan pengurutan pada sisi client dan tidak pada sisi server. Misalnya dengan menampung data terlebih dahulu pada komponen grid dan melakukan sortir pada grid tersebut sesuai kebutuhan pengguna.

(9)

Adakalanya sebuah instruksi dapat dituliskan dalam bentuk subquery atau perintah JOIN, disarankan untuk memprioritaskan penggunaan JOIN karena dalam kasus yang umum akan menghasilkan performa yang lebih cepat.

Gunakan WHERE dalam SELECT

Menulis suatu kondisi yang pasti bernilai true, misalnya SELECT .... WHERE 1=1. Bahkan tools open source phpMyAdmin yang berfungsi untuk menangani database MySQL selalu menyertakan default klausa WHERE 1 pada perintah SELECT, di mana angka 1 pada MySQL berarti nilai true.

Kecepatan Akses Operator

WHERE 1=1 dan WHERE 0 <> 1 sama-sama merupakan kondisi yang menghasilkan nilai true. Tetapi, dalam hal ini lebih baik Anda menggunakan WHERE 1=1 daripada WHERE 0 <> 1. Hal ini dikarenakan operator = diproses lebih cepat dibandingkan dengan operator <>.

Membatasi Jumlah Record

membatasi jumlah record yang berpotensi mengembalikan record dalam jumlah besar (kecuali memang benar-benar dibutuhkan), pada SQL Server, Anda dapat

menggunakan operator TOP di dalam perintah SELECT. Contohnya SELECT TOP 100 nama... akan menampilkan 100 record teratas field nama.

Jika menggunakan MySQL, Anda dapat menggunakan LIMIT untuk keperluan yang sama.

Batasi Penggunaan Function

Gunakan fungsi-fungsi yang disediakan SQL seperlunya saja. Sebagai contoh, jika Anda menemukan query sebagai berikut: SELECT nama FROM tbl_teman WHERE ucase(nama) = ‘ABC’, nampak query tersebut ingin mencari record yang memiliki data berisi “abc”, fungsi ucase digunakan untuk mengubah isi field nama menjadi huruf besar dan dibandingkan dengan konstanta “ABC” untuk meyakinkan bahwa semua data “abc” akan tampil, walaupun dituliskan dengan huruf kecil, besar, ataupun kombinasinya

(10)

Query yang tulis akan diproses dari kiri ke kanan, misalkan terdapat query WHERE kondisi1 AND kondisi2 AND kondisi3, maka kondisi1 akan terlebih dahulu

dievaluasi, lalu kemudian kondisi2, kondisi3, dan seterusnya. Tentunya dengan asumsi tidak ada kondisi yang diprioritaskan/dikelompokkan dengan menggunakan tanda kurung.

Gambar dalam Database

Database memang tidak hanya diperuntukkan sebagai penyimpanan teks saja, tetapi dapat juga berupa gambar. Akan lebih baik bagi kinerja database jika Anda hanya menyimpan link ataulokasi gambar di dalam database, dibandingkan menyimpan fisik gambar tersebut.

Pengukuran Kinerja

Jika menemukan sebuah query tampak tidak optimal, berusahalah menulis ulang query tersebut dengan teknik dan metode yang lebih baik. Semakin banyak query yang dapat dioptimasi, akan semakin baik kinerja aplikasi Anda. Terutama saat frekuensi pemakaian query tersebut relatif tinggi

Back-up

Buatlah back-up otomatis secara periodik, sebaiknya tes dan simulasikan prosedur restore database dan perhitungkan waktu yang diperlukan untuk membuat sistem pulih kembali jika terjadi sesuatu yang tidak diharapkan pada database.

Lakukan proses back-up pada waktu di mana aktivitas relatif rendah agar tidak mengganggu kegiatan operasional.

(11)

BAB III

PENUTUP

A. Kesimpulan

Dari pembahasan di atas dapat di simpulkan bahwa sistem terdistribusi merupakan sekumpulan prosesor yang tidak saling berbagi memori atau clock dan terhubung melalui jaringan komunikasi yang bervariasi, yaitu melalui Local Area Network atau pun melalui Wide Area Network dan dilengkapi dengan sistem software tedistribusi untuk membentuk fasilitas komputer terintegrasi.

Sistem terdistribusi dibangun untuk mencapai tujuan-tujuan yang ingin dicapai,diantaranya :

− Untuk memberikan akses bagi pengguna untuk dapat mengembangkan sumber daya sistem.

− Peningkatan kecepatan komputasi.

− Meningkatkan availibilitas atau ketersediaan dan reliabilitas data.

B. Saran

Demikian pengantar yang dapat penulis sampaikan dimana penulis pun sadar bawasannya penulis hanyalah seorang manusia yang tidak luput dari kesalahan dan kekurangan, sedangkan kesempurnaan hanya milik Tuhan Azza Wa’jala hingga dalam penulisan dan penyusununnya masih jauh dari kata sempurna. Oleh karena itu, kritik dan saran yang konstruktif akan senantiasa penulis nanti dalam upaya evaluasi diri.

(12)

Curiculum Vitae Anggota Kelompok :

Nama : Wisnu Anshori Alamat : Undaan Lor, Kudus TTL : Kudus, 12-06-1994 Hobi : Olahraga

Cita-Cita : Dokter Gigi Nama : Aryntha Apriyantho Alamat : Ploso, Kudus TTL : Kudus, 14-04-1994 Hobi : Olahraga

Cita-Cita : Programmer

Nama : Frista Yogie Tri Anggara Alamat : Gondang Manis, Kudus TTL : Kudus, 12-06-1993 Hobi : Menulis

Cita-Cita: Pengen Gemuk Nama : Andi Juli Aji Alamat : Ngabul, Jepara TTL : Jepara, 19-07-1994 Hobi : Olahraga

Cita-Cita : Orang Pintar

Nama : Nugroho Edi Laksono Alamat : Gajah, Demak

TTL : Demak, 17-02-1994 Hobi : Olahraga

Figur

Memperbarui...

Referensi

Memperbarui...