Kamis, 16 Mei 2013

Stored Procedure dan Trigger


Apa Stored Procedure?
Procedure atau Function di dalam database.
Stored procedure à SQL + Bahasa Prosedural
Banyak disupport oleh RDBMS (ORA, SQL Server, MySQL versi 5 ke atas)
Contoh
Program untuk mengisi sebuah field dengan deret 2, 4, 6 sd 100
create or replace procedure isi_deret as
    counter INTEGER;
begin
   counter := 0;
  loop
      insert into DERET(NILAI) values (counter);
  counter := counter + 2;
  exit when counter > 100;
  end loop;
end;

Optimasi Query

Mengapa Optimasi?

Trend: query semakin rumit, melibatkan banyak join
Proses realtime à hasil secepatnya harus diperoleh
Era web à waktu response harus cepat
SQL engine terkadang tidak optimal.

Optimizer
Program di dalam RDMBS yang mengoptimasi query secara otomatis.
Memilih strategi yang paling efisien.

Contoh
Cari mahasiswa yg ikut organisasi ber id 99  di tabel mahasiswa
Select m.nim,o.nama_org
from mahasiswa m, organisasi o
where
m.kode_org =o.id and
o.id = 99
asumsikan jumlah record mahasiswa 10.000, jumlah record organisasi 100 dan mahasiswa organisasi 99 adalah 50.

Langkah-Langkah tanpa Optimasi:
1.Gabung Mahasiswa dan Organisasi (m.nim, o.nama_org), baca 100 rec organisasi dan untuk setiap rec organisasi baca 10.000 record mahasiswa.
2.Filter hasil langkah 1, hanya ambil o.id=99 saja. Baca 10.000 hasil gabungan langkah 1, ambil 50.
3.Tampilkan 50 data tersebut

Total record yang diproses 10.000 x 100  + 10000 = 100.100


Langkah-Langkah dengan Optimasi
1.Dari 10.000 record mahasiswa, ambil hanya 50 record yang o.id = 99
2.Gabung Mahasiswa dan Organisasi (m.nim,o.nama_org). Membaca 100 record organisasi untuk mencari dan mengambil nama_org sesuai o.id=99.
3.Tampilkan

Total record yg diproses: 10.000 + 100  =10.100