Mas Aji, L.L_id (PK) => by default harusnya sudah ada indexnya karena Primary Key. S.S_id (PK) => by default harusnya sudah ada indexnya karena Primary Key. L.S_id (FK) => by default belum ada indexnya.
berdasarkan where clause yg ada: where l.S_id = s.S_id and l.L_id = 1234 Data akan dicari berdasarkan urutan sbb: (Asumsinya menggunakan Rule Base Optimizer) 1. data di table L dgn nilai L_id = 1234 akan dicari terlebih dulu, karena L_id adalah Primary Key , maka kemungkinan data yg didapat hanya 1 atau 0. Karena L_id-nya sudah terindex (Primary Key), maka plan-nya adalah UNIQUE INDEX SCAN. Dari pengaksesan index akan didapat ROWID. Dengan rowid tsb akan dicari recordnya. Termasuk data utk column L.S_id. 2. Dari data L.S_id yg didapat, sebut saja nilai L.S_id = 5678 akan dicari data dari table S (s_id) yg nilainya 5678. Karena S.S_id adalah primary key, kemungkinan data yg didapat hanya 1 atau 0.Karena S.S_id-nya terindex (Primary Key), maka plan-nya adalah UNIQUE INDEX SCAN, bukan FULL TABLE SCAN. cmiiw, bw --- In [email protected], Aji Perdana <aji_perd...@...> wrote: > > Halo Masters, > > Numpang tanya, klo ada table yg isinya bisa jutaan baris data dan ter-index > (tbl_L) > di query join dengan table lain yg isinya cuma puluhan baris tapi tidak > ter-index (tbl_S) > apakah query yg di execute akan berlaku indexnya atau tetap fullscan table? > > berikut simulasinya: > tbl_L > ========== > L_id (PK) -> "index1" > S_id (FK) -> "index1" > data > > tbl_S > ========== > S_id (PK) > data > > Query : > select l.data, s.data > from > tbl_L l, > tbl_S s, > where l.S_id = s.S_id > and l.L_id = 1234 > > > Mohon pencerahannya > Terimakasih > > Regards, > Aji > > > > > [Non-text portions of this message have been removed] >

