Upload
dadang-handaru
View
1.303
Download
15
Embed Size (px)
DESCRIPTION
pemrograman sistem terdistribusi
Citation preview
OPTIMISASI QUERY OPTIMISASI QUERY PADA SISTEM PADA SISTEM
DATABASE PARALELDATABASE 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.
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.
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.
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.
ArsitekturArsitektur
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.
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.
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.
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.
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. .
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
ENDEND
ThankyuThankyu