Anda di halaman 1dari 29

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 ENAME
FROM EMP,ASG
WHERE EMP.ENO = ASG.ENO
AND DUR > 37

Strategi 1

Strategi 2
Objek Optimasi Queri

Minimal Biaya
I/O Cost + CPU Cost + Communication Cost
Wide Area Networks
Biaya komunikasi akan mendominasi
1. Bandwidth Rendah
2. Kecepatan rendah
Local Area Networks
Biaya komunikasi tidak mendomionasi
Kompleksitas Operasi Relasional
Lapisan Pada Query Processing

Global
Query Decomposition
Schema

Control
Site Data Localization Fragment
Schema

Global Optimazation Stats On


Fragments

Local Local
Local Optimazation
Sites Schema
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 ^ 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
Mencari nama Karyawan untuk proyek J1 yang bekerja selama 12 atau 24 bulan
SQL :
Select Ename
From E, G
Where E.Eno = G.Eno
And 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 E
Where Ename > 200
Queri tidak benar :
Atribut E# tidak dideklarasikan
dalam schema
Operator > 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,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND PNAME = "CAD/CAM"
AND DUR = 36
AND TITLE = "Programmer"
Sederhanakan
- Mengapa Harus disederhanakan
- Bagaimana , Gunakan aturan
transformasi
1. p^pp 6. P V true  true
2. pVpp
7. P ^ p  false
3. p ^ true  p
4. p V false  p 8. P V p  true
5. p ^ false  false 9. p1 ^ (p1 Vp2)  p1
10 . p1 V (p1 ^p2)  p1
Contoh 4
SELECT TITLE
FROM EMP
WHERE 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 TITLE
FROM EMP
WHERE EMP.ENAME = “J. Doe”
Tata Ulang
Make use of query trees
Example
Find the names of employees other than
J. Doe who worked on the CAD/CAM
project for either 1 or 2 years.
SELECT ENAME
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND ENAME . “J. Doe”
AND PNAME = “CAD/CAM”
AND (DUR = 12 OR DUR = 24)

Anda mungkin juga menyukai