Query Processing dan Optimasi

image

1. Pendahuluan

1.1 Latar Belakang

User hanya menulis:

SELECT * FROM mahasiswa WHERE prodi='Informatika';

Tapi DBMS harus:

  • parsing query
  • menganalisis sintaks
  • mencari rencana eksekusi terbaik
  • memilih indeks
  • membaca storage

Semua ini disebut:

Query Processing.


2. Tujuan Pembelajaran

Mahasiswa mampu:

  • Memahami konsep query processing
  • Menjelaskan tahapan query processing
  • Memahami peran query optimizer
  • Menjelaskan teknik optimasi query
  • Menggunakan tools EXPLAIN

3. Konsep Query Processing

Query processing adalah:

proses DBMS menerjemahkan perintah SQL menjadi serangkaian operasi internal untuk menghasilkan hasil query.

Tujuan:

  • Akurat
  • Cepat
  • Efisien

4. Tahapan Query Processing

Secara umum:

  1. Parsing & Translation
  2. Query Optimization
  3. Query Execution

5. Tahap 1: Parsing & Translation

5.1 Parsing

  • Cek sintaks SQL
  • Cek nama tabel/kolom

Jika salah → error


5.2 Translation

Query diubah ke bentuk internal:

  • Relational algebra
  • Query tree

6. Tahap 2: Query Optimization

Optimasi adalah:

proses mencari rencana eksekusi paling efisien.

Optimizer memilih:

  • indeks atau tidak
  • join order
  • join method
  • access path

7. Tahap 3: Query Execution

Executor menjalankan:

  • scan
  • join
  • filter
  • sort
  • aggregate

8. Query Execution Plan (QEP)

QEP adalah:

rencana detail DBMS mengeksekusi query.


9. Tool: EXPLAIN

Contoh:

EXPLAIN SELECT * FROM mahasiswa WHERE nim='2023001';

Menampilkan:

  • full scan / index scan
  • cost
  • rows

10. Faktor yang Mempengaruhi Optimasi

Faktor
Ukuran tabel
Indeks
Statistik data
Join
Hardware

11. Relational Algebra dalam Optimasi

Operasi dasar:

  • Selection (σ)
  • Projection (π)
  • Join (⨝)
  • Union
  • Difference

12. Heuristic Optimization

Aturan logis:

  • Selection sedini mungkin
  • Projection sedini mungkin
  • Join yang kecil dulu

13. Cost-Based Optimization

Optimizer menghitung:

  • jumlah I/O
  • jumlah CPU
  • estimasi waktu

14. Join Processing

Jenis join:

  • Nested loop join
  • Sort merge join
  • Hash join

15. Join Order

Urutan join sangat mempengaruhi performa.


16. Access Path

Cara ambil data:

  • Full table scan
  • Index scan
  • Index seek

17. Peran Indeks dalam Optimasi

Tanpa indeks:

  • scan semua

Dengan indeks:

  • lompat langsung

18. Statistik Database

DBMS menyimpan:

  • jumlah baris
  • distribusi nilai

Digunakan optimizer.


19. Query Rewrite

Contoh tidak optimal:

SELECT * FROM mahasiswa;

Optimal:

SELECT nim,nama FROM mahasiswa;

20. Contoh Studi Kasus

Tabel:

  • mahasiswa (100k)
  • krs (500k)

Query join tanpa indeks:
30 detik

Dengan indeks:
0.3 detik


21. Common Performance Issues

❌ SELECT *
❌ Tidak pakai WHERE
❌ Join tanpa indeks
❌ Subquery berlebihan


22. Teknik Optimasi Praktis

✔ Gunakan indeks
✔ Gunakan WHERE
✔ Batasi kolom
✔ Gunakan LIMIT
✔ Analisis EXPLAIN


23. Optimasi di Dunia Nyata

Digunakan oleh:

  • DBA
  • Data engineer
  • Backend engineer

24. Query Processing vs Query Optimization

AspekProcessingOptimization
FokusEksekusiPerencanaan
TujuanHasilEfisiensi
OutputDataQEP

25. Hubungan dengan Materi Lain

MateriPeran
StorageI/O
IndexAkses
TransactionLock
ConcurrencyKonflik

26. Evaluasi

PG:

EXPLAIN digunakan untuk:
a. Menjalankan query
b. Melihat rencana eksekusi ✅
c. Menghapus data

Essay:

Jelaskan peran query optimizer!


27. Capaian Pembelajaran

Mahasiswa mampu:

  • Menjelaskan tahapan query processing
  • Menganalisis QEP
  • Mengoptimasi query SQL

28. Posisi Materi di SMBD

Urutan ideal:

  1. Storage & Index
  2. Transaksi
  3. Query Processing & Optimasi
  4. Distributed DB

29. Ringkasan Akhir

Query processing adalah proses menjalankan SQL, sedangkan query optimization adalah proses mencari cara tercepat untuk menjalankan SQL tersebut.