22
OPTIMISASI QUERY PADA OPTIMISASI QUERY PADA SISTEM DATABASE SISTEM DATABASE PARALEL PARALEL

Optimasi Query Pada Sistem Database Paralel

Embed Size (px)

DESCRIPTION

pemrograman sistem terdistribusi

Citation preview

Page 1: Optimasi Query Pada Sistem Database Paralel

OPTIMISASI QUERY OPTIMISASI QUERY PADA SISTEM PADA SISTEM

DATABASE PARALELDATABASE PARALEL

Page 2: Optimasi Query Pada Sistem Database Paralel

PENDAHULUANPENDAHULUAN

Teknologi Distributed Database Teknologi Distributed Database dapat diimplementasikan menjadi dapat diimplementasikan menjadi paralel database sistem. paralel database sistem.

Sistem database paralel Sistem database paralel memanfaatkan paralelism pada memanfaatkan paralelism pada manajemen data untuk manajemen data untuk menghasilkan database server yang menghasilkan database server yang memiliki performansi dan availability memiliki performansi dan availability yang tinggi. yang tinggi.

Page 3: Optimasi Query Pada Sistem Database Paralel

Sebuah paralel DBMS (Database Management Sebuah paralel DBMS (Database Management System) dapat didefinisikan sebagai DBMS yang System) dapat didefinisikan sebagai DBMS yang diimplementasikan pada multiprosesor diimplementasikan pada multiprosesor komputer. komputer.

DBMS tersebut melakukan query dengan dua DBMS tersebut melakukan query dengan dua cara, yaitu : cara, yaitu : 1. Inter-query paralelism1. Inter-query paralelism

Inter-query mampu melakukan Inter-query mampu melakukan eksekusi eksekusi paralel dengan menggunakan paralel dengan menggunakan multiple query multiple query yang dilakukan oleh transaksi–yang dilakukan oleh transaksi–transaksi yang transaksi yang berjalan secara konkuren.berjalan secara konkuren.2. Intra–query paralelism2. Intra–query paralelism

Mampu membuat eksekusi paralel Mampu membuat eksekusi paralel berjalan sendiri–sendiri meskipun dengan berjalan sendiri–sendiri meskipun dengan query yang sama.query yang sama.

Page 4: Optimasi Query Pada Sistem Database Paralel

Karakteristik DBMS ParalelKarakteristik DBMS Paralel

Paralel database adalah sebuah database yang Paralel database adalah sebuah database yang file-filenya disimpan di tiap–tiap komputer yang file-filenya disimpan di tiap–tiap komputer yang terhubung dengan jaringan. Untuk membuat terhubung dengan jaringan. Untuk membuat sebuah DDB, data secara lojik saling sebuah DDB, data secara lojik saling berhubungan dimana hubungan tersebut berhubungan dimana hubungan tersebut terdefinisi dalam bentuk yang lebih terstruktur.terdefinisi dalam bentuk yang lebih terstruktur.

Sistem tersebut harus memiliki fungsionalitas Sistem tersebut harus memiliki fungsionalitas penuh sebagai sebuah DBMS. penuh sebagai sebuah DBMS.

Distribusi data dari multiprosesor tidak terlihat Distribusi data dari multiprosesor tidak terlihat oleh user, ini disebut oleh user, ini disebut transparencytransparency. . Transparent accessTransparent access berarti user hanya melihat berarti user hanya melihat sebuah database meskipun pada kenyataannya sebuah database meskipun pada kenyataannya database tersebut terdistribusi. database tersebut terdistribusi.

Page 5: Optimasi Query Pada Sistem Database Paralel

Idealnya sebuah paralel DBMS memiliki dua Idealnya sebuah paralel DBMS memiliki dua keuntungan, yaitu : keuntungan, yaitu :

Linier scaleupLinier scaleup

Linier scaleup menyatakan bahwa Linier scaleup menyatakan bahwa performansi database bergantung pada performansi database bergantung pada ukuran database, processing dan storage ukuran database, processing dan storage power.power.

Linier speedupLinier speedup

Linier speedup menunjukan bahwa Linier speedup menunjukan bahwa peningkatan performansi untuk sebuah peningkatan performansi untuk sebuah ukuran database yang tetap adalah linear ukuran database yang tetap adalah linear dan peningkatan linear di dalam dan peningkatan linear di dalam pemrosesan dan sumber daya.pemrosesan dan sumber daya.

Page 6: Optimasi Query Pada Sistem Database Paralel

ArsitekturArsitektur

Page 7: Optimasi Query Pada Sistem Database Paralel

Shared-nothingShared-nothing

Setiap processor mempunyai akses Setiap processor mempunyai akses eksklusive ke memory utama dan unit disk. eksklusive ke memory utama dan unit disk.

Arsitektur shared-nothing memiliki tiga Arsitektur shared-nothing memiliki tiga keuntungankeuntungan : cost, extensibility, dan : cost, extensibility, dan availability. Di lain sisi, shared-nothing memiliki availability. Di lain sisi, shared-nothing memiliki kompleksitas yang tinggi dan berpotensi terjadi kompleksitas yang tinggi dan berpotensi terjadi masalah keseimbangan.masalah keseimbangan.

Shared-memoryShared-memory

Processor manapun memiliki akses ke Processor manapun memiliki akses ke modul memory atau unit manapun melalui modul memory atau unit manapun melalui interkoneksi yang cepat. Shared-memory interkoneksi yang cepat. Shared-memory memiliki dua keunggulan simpel dan seimbang, memiliki dua keunggulan simpel dan seimbang, dan terdapat tiga kerugian : cost, limited dan terdapat tiga kerugian : cost, limited extensibility, dan avalaibility yang rendah. extensibility, dan avalaibility yang rendah.

Page 8: Optimasi Query Pada Sistem Database Paralel

Shared-diskShared-disk

Setiap prosesor memiliki akses ke Setiap prosesor memiliki akses ke setiap disk melalui interkoneksi tetapi setiap disk melalui interkoneksi tetapi eksklusif (non-shared) akses hanya pada eksklusif (non-shared) akses hanya pada main memory saja. main memory saja. Setiap prosesor dapat Setiap prosesor dapat melakukan akses halaman–halaman melakukan akses halaman–halaman database pada shared-disk dan database pada shared-disk dan mengkopinya ke cache-nya sendiri. mengkopinya ke cache-nya sendiri. Keunggulannya: cost, ekstensibility, plot Keunggulannya: cost, ekstensibility, plot balancing, availability, dan kemudahan balancing, availability, dan kemudahan migrasi dari sistem uniprosesor. Di lain migrasi dari sistem uniprosesor. Di lain pihak juga memiliki masalah kompleksitas pihak juga memiliki masalah kompleksitas yang tinggi dan performansi.yang tinggi dan performansi.

Page 9: Optimasi Query Pada Sistem Database Paralel

Query processing dan Query processing dan optimasioptimasi

Query prosesing adalah sebuah proses Query prosesing adalah sebuah proses dimana deklarasi query di terjemahkan dimana deklarasi query di terjemahkan menjadi operasi manipulasi data pada menjadi operasi manipulasi data pada level rendah. level rendah.

SQL adalah bahasa query standar yang SQL adalah bahasa query standar yang dimiliki oleh DBMS pada saat ini. dimiliki oleh DBMS pada saat ini.

Optimisasi query merujuk pada proses Optimisasi query merujuk pada proses memilih strategi eksekusi query yang memilih strategi eksekusi query yang terbaik dari beberapa alternative yang terbaik dari beberapa alternative yang diberikan. diberikan.

Page 10: Optimasi Query Pada Sistem Database Paralel

Pada DBMS terpusat proses Pada DBMS terpusat proses tersebut melibatkan dua langkah:tersebut melibatkan dua langkah:

1. Query Dekomposisi 1. Query Dekomposisi Query dekomposisi mengambil Query dekomposisi mengambil

sebuah SQL query dan sebuah SQL query dan menterjemahkannya ke dalam aljabar menterjemahkannya ke dalam aljabar relasional. Pada proses tersebut query relasional. Pada proses tersebut query dianalisa secara semantik sehingga dianalisa secara semantik sehingga query yang tidak benar dapat query yang tidak benar dapat terdeteksi dan dikeluarkan dengan terdeteksi dan dikeluarkan dengan mudah, sedangkan query yang benar mudah, sedangkan query yang benar dapat diterima. dapat diterima.

Page 11: Optimasi Query Pada Sistem Database Paralel

2. Query optimisasi 2. Query optimisasi Jika kita diberikan SQL query maka Jika kita diberikan SQL query maka

dimungkinkan ada lebih dari satu query dimungkinkan ada lebih dari satu query aljabar. Beberapa dari query aljabar aljabar. Beberapa dari query aljabar dibandingkan dengan query alajbar yang lain. dibandingkan dengan query alajbar yang lain. Kualitas dari query aljabar ditentukan oleh Kualitas dari query aljabar ditentukan oleh performansi yang terbaik. Query tersebut performansi yang terbaik. Query tersebut kemudian ditransformasikan menggunakan kemudian ditransformasikan menggunakan aturan-aturan transformasi aljabar, menjadi aturan-aturan transformasi aljabar, menjadi query aljabar yang terbaik nantinya. Aljabar query aljabar yang terbaik nantinya. Aljabar query yang terbaik ini dinilai berdasarkan query yang terbaik ini dinilai berdasarkan cost functioncost function dengan menghitung cost yang dengan menghitung cost yang terjadi pada saat eksekusi query tersebut. terjadi pada saat eksekusi query tersebut. Proses inilah yang disebut Proses inilah yang disebut query optimisasiquery optimisasi. .

Page 12: Optimasi Query Pada Sistem Database Paralel

Pada DBMS terdistribusi, selain Pada DBMS terdistribusi, selain menggunakan langkan query dekomposisi menggunakan langkan query dekomposisi dan query optimisasi, DBMS ini juga dan query optimisasi, DBMS ini juga menggunakan data lokalisasi dan global menggunakan data lokalisasi dan global query optimisasi.query optimisasi.

Masukan dari data lokalisasi didapatkan Masukan dari data lokalisasi didapatkan dari langkah query dekomposisi. Query dari langkah query dekomposisi. Query aljabar ini dispesifikasikan pada global aljabar ini dispesifikasikan pada global relation irrespective pada fragmentasi relation irrespective pada fragmentasi atau distribusi. atau distribusi.

Page 13: Optimasi Query Pada Sistem Database Paralel

Data LocalizationData LocalizationTujuan utama dari data localization adalah:Tujuan utama dari data localization adalah:

untuk melokalisasi hasil data query dengan untuk melokalisasi hasil data query dengan menggunakanmenggunakan

informasi data terdistribusi. Pada langkah ini, fragmen-informasi data terdistribusi. Pada langkah ini, fragmen-fragmen yang terlibat pada query ditransformasikanfragmen yang terlibat pada query ditransformasikanmenjadi satu fragmen yang menjalankan relasi secara menjadi satu fragmen yang menjalankan relasi secara global. Sebuah relasi terdistribusi dapat direkonstruksiglobal. Sebuah relasi terdistribusi dapat direkonstruksidengan menerapkan kebalikan aturan aturan dengan menerapkan kebalikan aturan aturan

fragmentasi.fragmentasi.Inilah yang disebut Inilah yang disebut localization programlocalization program. . Untuk menghasilkan query yang baik dilakukan denganUntuk menghasilkan query yang baik dilakukan denganlangkah: data localization setiap relasi globallangkah: data localization setiap relasi globaldigantikan oleh localization programnya dan kemudiandigantikan oleh localization programnya dan kemudianmenghasilkan fragmen query yang lebih sederhana danmenghasilkan fragmen query yang lebih sederhana danterstruktur. terstruktur.

Page 14: Optimasi Query Pada Sistem Database Paralel

Global Query Optimisasi Global Query Optimisasi

Tujuan dari query optimisasi adalah :Tujuan dari query optimisasi adalah :Untuk menemukan strategi eksekusi untuk query Untuk menemukan strategi eksekusi untuk query yang paling optimal. Optimisasi query yang paling optimal. Optimisasi query menemukan sebuah plan terbaik dari beberapa menemukan sebuah plan terbaik dari beberapa kandidat plan yang telah ditemukan. kandidat plan yang telah ditemukan.

Query optimizer memiliki tiga komponen Query optimizer memiliki tiga komponen yaitu:yaitu:1. Sebuah ruangan/space untuk search(search 1. Sebuah ruangan/space untuk search(search space)space)

Kumpulan dari Kumpulan dari alternative execution plansalternative execution plans yang merepresentasikan inputan query. Plan-plan yang merepresentasikan inputan query. Plan-plan tersebut ekuivalen dan memiliki hasil yang sama tersebut ekuivalen dan memiliki hasil yang sama tetapi memiliki perbedaan urutan eksekusi dari tetapi memiliki perbedaan urutan eksekusi dari operasi-opersasi dan perbedaan bagaimana operasi-opersasi dan perbedaan bagaimana operasi tersebut diimplementasikan. operasi tersebut diimplementasikan.

Page 15: Optimasi Query Pada Sistem Database Paralel

2. Sebuah cost model2. Sebuah cost model

Cost model memprediksi cost Cost model memprediksi cost dari execution plans yang terbentuk. dari execution plans yang terbentuk. Cost model harus memiliki Cost model harus memiliki pengetahuan yang akurat tentang pengetahuan yang akurat tentang eksekusi secara parallel. eksekusi secara parallel.

3. Sebuah search strategy3. Sebuah search strategy

Search strategy menggali search Search strategy menggali search space yang telah dibuat dan memilih space yang telah dibuat dan memilih plan terbaik. plan terbaik.

Page 16: Optimasi Query Pada Sistem Database Paralel

Pada lingkungan terdistribusi fungsi cost Pada lingkungan terdistribusi fungsi cost biasanya didefinisikan dengan time units, biasanya didefinisikan dengan time units, merujuk pada sumberdaya seperti alokasi merujuk pada sumberdaya seperti alokasi ruang disk, I/O disk, buffer space, CPU ruang disk, I/O disk, buffer space, CPU cost, communication cost, dsb. cost, communication cost, dsb.

Sebuah cost diambil dengan Sebuah cost diambil dengan mempertimbangkan bahwa mempertimbangkan bahwa communication cost pada DBMS communication cost pada DBMS terdistribusi merupakan faktor yang paling terdistribusi merupakan faktor yang paling utama.utama.

Page 17: Optimasi Query Pada Sistem Database Paralel

Contoh KasusContoh Kasus Implementasi pada Wide Area Network (WAN) Implementasi pada Wide Area Network (WAN)

dimana bandwidth yang terbatas membuat dimana bandwidth yang terbatas membuat communication menjadi lebih mahal dibanding communication menjadi lebih mahal dibanding biaya pemrosesan local. Untuk memilih operasi-biaya pemrosesan local. Untuk memilih operasi-operasi yang terurut sangat penting dengan operasi yang terurut sangat penting dengan memperhitungkan eksekusi cost dari urut-urutan memperhitungkan eksekusi cost dari urut-urutan dari kandidatnya. Dengan memperhitungkan dari kandidatnya. Dengan memperhitungkan cost eksekusi sebelum query dilakukan seperti cost eksekusi sebelum query dilakukan seperti static optimization didasarkan pada statistic-static optimization didasarkan pada statistic-statistik fragmen dan berbagai formula untuk statistik fragmen dan berbagai formula untuk memperhitungkan kardinalitas hasil operasi-memperhitungkan kardinalitas hasil operasi-operasi relasional. Oleh karenanya pemilihan operasi relasional. Oleh karenanya pemilihan optimisasi sangat bergantung pada ketersediaan optimisasi sangat bergantung pada ketersediaan statistic-statistik di fragmen. statistic-statistik di fragmen.

Page 18: Optimasi Query Pada Sistem Database Paralel

Aspek yang sangat penting dari Aspek yang sangat penting dari query optimisasi adalah join query optimisasi adalah join ordering, karena permutasi dari join ordering, karena permutasi dari join dapat meningkatkan magnitude dari dapat meningkatkan magnitude dari beberapa permintaan-permintaan. beberapa permintaan-permintaan.

Salah satu dari teknik optimisasi Salah satu dari teknik optimisasi yang mendasar adalah sequence yang mendasar adalah sequence distributed join operation distributed join operation menggunakan semi join operator. menggunakan semi join operator. Keuntungan utama dari semijoin Keuntungan utama dari semijoin pada sistem terdistribusi adalah pada sistem terdistribusi adalah untuk mengurangi cost komunikasi untuk mengurangi cost komunikasi pada operan-operan join. pada operan-operan join.

Page 19: Optimasi Query Pada Sistem Database Paralel

Parallel query optimization Parallel query optimization Memiliki kesamaan dengan distributed query Memiliki kesamaan dengan distributed query

processing. Dimana parallel query optimization processing. Dimana parallel query optimization memiliki keuntungan dari intra operation parallelism memiliki keuntungan dari intra operation parallelism dan juga inter-operation parallelism. dan juga inter-operation parallelism. 1. Intra operation parallelism 1. Intra operation parallelism

Intra-operation parallelism didapatkan dengan Intra-operation parallelism didapatkan dengan cara mengeksekusi sebuah operasi yang terdapat pada cara mengeksekusi sebuah operasi yang terdapat pada node-node sebuah mesin multiprosesor. Ini node-node sebuah mesin multiprosesor. Ini membutuhkan operan-operan yang sebelumnya telah membutuhkan operan-operan yang sebelumnya telah dipartisi, contohnya horizontal fragmentasi, melalui dipartisi, contohnya horizontal fragmentasi, melalui node-node. node-node.

Optimizer mungkin seringkali menemukan bahwa Optimizer mungkin seringkali menemukan bahwa proses repartisi tersebut sangat menguntungkan. proses repartisi tersebut sangat menguntungkan. Parallel optimization menggunakan intra-operation Parallel optimization menggunakan intra-operation parallelism dapat membuat beberapa teknik dari parallelism dapat membuat beberapa teknik dari database-database yang terdistribusi. database-database yang terdistribusi.

Page 20: Optimasi Query Pada Sistem Database Paralel

2. Inter-operation parallelism 2. Inter-operation parallelism Muncul ketika terdapat dua atau lebih Muncul ketika terdapat dua atau lebih

operasi-opersai yang dieksekusi secara operasi-opersai yang dieksekusi secara parallel yang memiliki sebuah dataflow. parallel yang memiliki sebuah dataflow. Kita menggambarkan dataflow parallelism Kita menggambarkan dataflow parallelism dengan cara menggunakan pipelining. dengan cara menggunakan pipelining.

Independent parallelism muncul Independent parallelism muncul ketika operasi dieksekusi pada saat yang ketika operasi dieksekusi pada saat yang sama atau terurut permintaan. sama atau terurut permintaan. Independent parallelism mungkin terjadi Independent parallelism mungkin terjadi ketika operasi-operasi tidak menggunakan ketika operasi-operasi tidak menggunakan data yang sama. data yang sama.

Page 21: Optimasi Query Pada Sistem Database Paralel

KesimpulanKesimpulan

Kemajuan dari teknologi Database Kemajuan dari teknologi Database Management System (DBMS) telah Management System (DBMS) telah mencapai pada penggunaan teknologi mencapai pada penggunaan teknologi multiprocessing. multiprocessing.

Oleh karena itu penggunaan DBMS yang Oleh karena itu penggunaan DBMS yang mampu menggunakan teknologi mampu menggunakan teknologi multiprocessing sekaligus multiuser multiprocessing sekaligus multiuser sangat diperlukan. sangat diperlukan.

Sistem ini telah menjadi tools Sistem ini telah menjadi tools manajemen data yang dominan pada manajemen data yang dominan pada lingkungan data yang sangat besarlingkungan data yang sangat besar

Page 22: Optimasi Query Pada Sistem Database Paralel

ENDEND

ThankyuThankyu