optimasi query

Post on 20-Jun-2015

451 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 user

Optimasi Query Bagaimana mengetahui rencana

eksekusi yang “baik”

Memilih Alternatif

SELECT ENAMEFROM EMP,ASGWHERE EMP.ENO = ASG.ENOAND DUR > 37

Strategi 1

Strategi 2

Objek Optimasi Queri

Minimal 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 Processing

Query Decomposition

Data Localization

Global Optimazation

Local Optimazation

Global Schema

Fragment Schema

Stats OnFragments

LocalSchema

Control Site

Local Sites

Query Decomposition

Pada 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 Localization

Hasil 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 Optimazation

Tujuan 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

Analisa Mendeteksi queri yang salah

Sederhanakan Mengeleminasi predicate yang berulang

Tata Ulang Gunakan aturan transformasi

Normalisasi Aturan untuk operasi logika

1. p1 p2 <=> p2 ^ p12. p1 V p2 <=> p2 V p13. p1 ^ ( p2 ^p3) (p1 ^ p2) ^p34. p1 V (p2 Vp3) ( p1 V p2) Vp35. p1 ^ (p2 Vp3)(p1 ^ p2) V (p1 ^ p3)6. p1 V (p2 ^ p3) (p1 V p2) ^ (p1 V p3) 7. ( p1 ^ p2) p1 V p28. ( p1 V p2) p1 ^ p29. (p) p

Contoh 1Mencari nama Karyawan untuk proyek J1 yang bekerja selama 12 atau 24 bulanSQL :Select EnameFrom E, GWhere E.Eno = G.EnoAnd G.Jno = “J1”And Dur = 12 Or Dur = 24

Normalisasi :E.Eno = G.Eno G.Jno=“J1” (Dur = 12 V Dur =24)

atau (E.Eno = G.Eno G.Jno=“J1” Dur = 12) V(E.Eno = G.Eno G.Jno=“J1” Dur = 24)

Analisa

Menemukan 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 2

Select E#From EWhere Ename > 200Queri tidak benar :Atribut E# tidak dideklarasikan

dalam schemaOperator > 200 tidak compatible

dengan type string dari nama

Kesalahan Semantik

1. Ada komponen yang tidak memberikan konstribusi dalam hasil akhir

2. Hanya sebagian dari relational queris yang dapat di tes untuk koreksi

3. Untuk mendektesi : query graph dan Join Graph

Contoh 3:Cari nama dan responsibility dari programer yang telah

bekerja pada proyek CAD/CAM lebih dari 3 tahun

FROM EMP, ASG, PROJ

WHERE EMP.ENO = ASG.ENO

AND ASG.PNO = PROJ.PNO

AND PNAME = "CAD/CAM"

AND DUR = 36

AND TITLE = "Programmer"

Analisis Jika Graph tidak terkoneksi , queri salah

SELECT ENAME,RESPFROM EMP, ASG, PROJWHERE EMP.ENO = ASG.ENOAND PNAME = "CAD/CAM"AND DUR = 36AND TITLE = "Programmer"

Sederhanakan

- Mengapa Harus disederhanakan- Bagaimana , Gunakan aturan

transformasi1. p ^ p p2. p V p p3. p ^ true p4. p V false p5. p ^ false false

6. P V true true

7. P ^ p false

8. P V p true

9. p1 ^ (p1 Vp2) p1

10 . p1 V (p1 ^p2) p1

Contoh 4

SELECT TITLEFROM EMPWHERE EMP.ENAME = “J. Doe”OR (NOT (EMP.TITLE = “Programmer”)AND (EMP.TITLE = “Programmer”OR EMP.TITLE = “Elect. Eng.”)AND NOT (EMP.TITLE = “Elect. Eng.”))

SELECT TITLEFROM EMPWHERE EMP.ENAME = “J. Doe”

Tata UlangMake use of query trees ExampleFind the names of employees other thanJ. Doe who worked on the CAD/CAMproject for either 1 or 2 years.SELECT ENAMEFROM EMP, ASG, PROJWHERE EMP.ENO = ASG.ENOAND ASG.PNO = PROJ.PNOAND ENAME . “J. Doe”AND PNAME = “CAD/CAM”AND (DUR = 12 OR DUR = 24)

top related