Upload
arya-wiratama
View
176
Download
1
Embed Size (px)
Citation preview
Optimasi Query
Komponen Query Processing
Bahasa yang digunakan SQL
: Intergrasi bahasa data
Metodelogi Eksekusi Query Langkah
langkah yang digunakan untuk mengeksekusi dalam gueri yang diinginkan oleh usermengetahui rencana eksekusi yang baik
Optimasi Query Bagaimana
Tabel yang ada
Pelanggan
Daya terpasang
harga
Memilih AlternatifSELECT nmpel FROM pelanggan,daya_terpasang WHERE pelanggan.idpel = daya_terpasang.idpel AND daya > 1300
Strategi 1 nmpel(daya >1300 pelanggan.idpel=daya_terpasang.idpel(pelanggan X daya_terpasang))
Strategi 2
nmpel(pelanggan
idpel
(daya>1300 (daya_terpasang))
Objek Optimasi QueriMinimal BiayaI/O Cost + CPU Cost + Communication Cost
Wide Area NetworksBiaya komunikasi akan mendominasi 1. Bandwidth Rendah 2. Kecepatan rendah
Local Area NetworksBiaya komunikasi tidak mendomionasi
Kompleksitas Operasi Relasional
Lapisan Pada Query ProcessingQuery DecompositionControl Site Global Schema
Data Localization
Fragment Schema Stats On Fragments
Global Optimazation
Local Sites
Local Optimazation
Local Schema
Query DecompositionPada Lapis Pertama ini input adalah query dirubah menjadi Aljabar query. Query Decomposition dibagi menjadi 4 bagian :Normalisasi, analisa semantik, memperbaiki Query, menata ulang struktur dari queri (restruktured)
Data LocalizationHasil dari lapis pertama akan dibuat dalam bentuk fragment. Secara Umum membuat fragment guery ada 2 langkah :Distribusi query dipetakan dalam fragment query, menyederhanakan fragment query.
Global OptimazationTujuan dari optimasi query adalah mencari strategi untuk mengeksekusi query. Strategi eksekusi untuk query terdistribusi tergantung dari aljabar relasional dan cara berkomunikasi ( mengirim/menerima)
Local Optimization
Pada lapisan ini , query terbaik sudah terpilih, dan setiap sub query berada di satu site.
Dekomposisi Query
Normalisasi
Manipulasi Queri Mendeteksi queri yang salah Mengeleminasi predicate yang berulang Gunakan aturan transformasi
Analisa
Sederhanakan
Tata Ulang
Normalisasi
Aturan untuk operasi logika 1. p1 p2 p2 ^ p1 2. p1 V p2 p2 V p1 3. p1 ^ ( p2 ^p3) (p1 ^ p2) ^p3 4. p1 V (p2 Vp3) ( p1 V p2) Vp3 5. p1 ^ (p2 Vp3)(p1 ^ p2) V (p1 ^ p3) 6. p1 V (p2 ^ p3) (p1 V p2) ^ (p1 V p3) 7. ( p1 ^ p2) p1 V p2 8. ( p1 V p2) p1 ^ p2 9. (p) p
Contoh 1 Select nmpelMencari nama pelanggan dengan ap lenteng agung dengan daya 1300 Where (p.idpel = d.idpel And ap = 'lenteng agung atau 900 watt And daya = 1300 ) SQL : or Select nmpel = d.idpel And ap = 'lenteng agung' ( p.idpel And daya From pelanggan=p900 ) , daya_terpasang d Where p.idpel = d.idpel And ap = lenteng agung And (daya = 1300 Or daya = 900) Normalisasi : p.idpel = d.idpel ap=lenteng agung (daya = 1300 V Daya =900)atau
From pelanggan p , daya_terpasang d
(p.idpel = d.idpel ap=lenteng agung Daya = 1300) V (p.idpel = d.idpel ap=lenteng agung Daya = 900)
AnalisaMenemukan queri yang salah Tipe yang tidak benar 1. Jika ada atribut atau nama relasi tidak didefenisi dalam skema global 2. Ada operasi yang diaplikasikan ke atribut dengan tipe yang salah
Contoh 2Select alamat From pelanggan Where ap > 1900 Queri tidak benar :Atribut alamat tidak dideklarasikan dalam struktur tabel Operator > 1900 tidak compatible dengan type text dari ap
Kesalahan Semantik1.
2.
3.
Ada komponen yang tidak memberikan konstribusi dalam hasil akhir Hanya sebagian dari relational queris yang dapat di tes untuk koreksi Untuk mendektesi : query graph dan Join Graph
Contoh 3:Cari nama pelanggan dan daya dengan tarif kurang dari 100 SELECT nmpel, daya FROM pelanggan p, daya_terpasang d, harga h WHERE p.idpel = d.idpel AND d.gol = h.gol AND ap = lenteng agung" AND tarif