Optimasi Query

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