Makalah Optimasi Query Terdistribusi

  • Published on
    16-Oct-2015

  • View
    342

  • Download
    51

DESCRIPTION

Pengaksesan record-record memerlukan pemilihan dan hasilnya tidak optimalHanya dibahas solusi khusus yg fragmentasi & useful untuk data terdistribusi dalam network yg dedikasi dgn keterbatasan kapasitas storage lokal.

Transcript

SISTEM TERDISTRIBUSI

DATABASE MANAGEMENT SYSTEM

PADA SISTEM TERDISTRIBUSIUntuk 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 KUDUS2014Daftar Isi

2BAB I

2A.Latar belakang

2B.Tujuan

2C.Perumusan Masalah

3BAB II

3A.Pengenalan Optimasi Query Terdistribusi

5B.Optimasi pada perintah SQL

19BAB III

19A.Kesimpulan

19B.Saran

BAB I

PENDAHULUANA. 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 aksesC. Perumusan Masalah

Pengenalan Optimasi Query Terdistribusi Optimasi pada perintah SQLBAB II

PEMBAHASANA. Pengenalan Optimasi Query TerdistribusiOptimasi 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 : Search SpaceMerupakan 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 ModelCost Model memprediksi biaya yang harus dikeluarkan dari suatu query yang akan dieksekusi. Terdiri dari cost function, statistic database, dan formula.

Search StrategySearch 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. Optimasi Query Terpusat Algoritma INGRESAlgoritma 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-aljabarINGRES 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 dapat dilakukan secara langsung, maupun dengan mengombinasikan dengan semijoins di mana akan meminimalisasi communication cost.

Optimasi query terdistribusi Algoritma INGRES terdistribusiFungsi 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 SQLDesain 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 IndexIndex 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 DataMenentukan 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 penyimpanan yang tetap (xed-length), sedangkan varchar menyediakan ukuran penyimpanan sesuai dengan isi data (variable-length). Jangan Izinkan Allow NullJika memungkinkan, kurangi penggunaan eld yang memperbolehkan nilai null. Sebagai gantinya, dapat memberikan nilai default pada eld tersebut. Nilai null kadang rancu dalam intepretasi programer dan dapat mengakibatkan kesalahan logika pemrograman. Selain itu, eld null mengonsumsi byte tambahan sehingga menambah beban pada query yang mengaksesnya. Query yang Mudah TerbacaQuery panjang yang ditulis dalam 1 baris jelas akan menyulitkan modi 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 eld yang terdapat pada sebuah table, tetapi jika hanya ingin memproses eld tertentu, maka sebaiknya Anda menuliskan eld yang ingin diakses saja, sehingga query Anda menjadi SELECT eld1, eld2, eld3 dan seterusnya (jangan pedulikan kode program yang menjadi lebih panjang!). Hal ini akan mengurangi beban lalu lintas jaringan, terutama jika table tersebut memiliki banyak eld dan berukuran besar. Batasi ORDER BYPenggunaan 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. Subquery Atau JOINAdakalanya 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 SELECTMenulis 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 Recordmembatasi 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 eld nama.Jika menggunakan MySQL, Anda dapat menggunakan LIMIT untuk keperluan yang sama. Batasi Penggunaan FunctionGunakan 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 eld 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 Baca dari Kiri ke KananQuery 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 DatabaseDatabase 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 sik gambar tersebut. Pengukuran KinerjaJika 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.BAB III

PENUTUP

A. Kesimpulan

Dari pembahasan di atas dapat di simpulkan bahwa sistem terdistribusi merupakan sekumpulan prosesor yang tidak saling berbagi memori atau clockdan terhubung melalui jaringan komunikasi yang bervariasi, yaitu melalui Local AreaNetwork atau pun melalui Wide Area Networkdan 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, sedangkankesempurnaan hanya milik Tuhan Azza Wajala 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.

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 : ProgrammerNama: 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

Cita-Cita : Bisnis Man

Recommended

View more >