Setiap statement SQL yang dieksekusi akan melalui tahapan parsing (softer soft parse/soft parse/hard parse). Pada PL/SQL program setelah di-compile akan disimpan dalam bentuk m-code dan DIANA. Perlu diketahui bahwa saat eksekusi, tiap-tiap SQL yang berada dalam PL/SQL tetap harus melalui tahapan parsing walaupun sudah disimpan dalam compiled form tadi.
Kalau saya menjawab pertanyaan, apakah harus menggunakan SQL atau PL/SQL, saya cenderung melihat konteks dari permasalahannya. Jika saya dapat menyelesaikannya dengan SQL saja secara efisien maka SQL adalah cara yang akan saya pilih. Sebaliknya saya akan menggunakan PL/SQL atau kombinasi keduanya. Sebagai contoh (ekstrim) jika saya harus memilih cara join dua table berikut. (1) select * from a, b where a.c1 = b.c1 (2) for i in (select * from a) loop for j in (select * from b where c1 = i.c1) loop Saya tentu akan memilih yang pertama karena Oracle lebih mengerti cara apa yang akan digunakan untuk execution plan-nya. Sedangkan untuk yang kedua, select terhadap table B ini akan dikerjakan sebanyak jumlah row yang dihasilkan dari select table A, tidak perduli table A mengembalikan row sebanyak apapun. Misalkan hash join jauh lebih efisien untuk join kedua table tersebut, maka cara kedua tersebut tidak dapat menggunakan hash join untuk execution plan-nya. --- In [email protected], "Moch Firman N" <[EMAIL PROTECTED]> wrote: > > Dear all... > > *I have a comment for this statement :* > > Setiap perintah SQL yang akan dieksekusi oleh database, harus diperiksa > > dan di compile dulu oleh database sebelum dieksekusi. > > Mungkin statement di atas perlu di perjelas lagi, > printah SQL mana yang akan di compile tersebut.. > Karna sepengetahuan sy, > untuk printah SQL yg memakai BIND VARIABLE tidak perlu di compile lagi.... > !!! > > > best regards > Piping.. > > > 2008/11/7 mohammad arief pradipto <[EMAIL PROTECTED]> > > > Terima kasih pak Privida.. Pencerahan buat saya juga ini.. > > > > > > On Fri, Nov 7, 2008 at 9:38 AM, Privida Kristiono <[EMAIL PROTECTED]<privida%40yahoo.com>> > > wrote: > > > > > Setiap perintah SQL yang akan dieksekusi oleh database, harus diperiksa > > > dan di compile dulu oleh database sebelum dieksekusi. > > > > > > Kalau kita kirim perintah SQL dari program aplikasi, maka setelah sampai > > di > > > database perintah SQL tersebut akan melalui proses tersebut, dan ini > > > memerlukan waktu (meskipun hanya sebentar). > > > > > > Berbeda dengan Stored Procedure atau Stored Function, yang dibuat dan > > > disimpan di database, pada saat disimpan keduanya dicompile dulu, > > sehingga > > > pada saat dipanggil untuk dieksekusi tidak perlu lagi dicompile > > > > > > Salam, > > > > > > > > > --- On Thu, 11/6/08, musisi musisi <[EMAIL PROTECTED]<tc2681_2006%40yahoo.com.sg> > > <tc2681_2006%40yahoo.com.sg>> > > > wrote: > > > > > > From: musisi musisi <[EMAIL PROTECTED]<tc2681_2006%40yahoo.com.sg><tc2681_2006% > > 40yahoo.com.sg> > > > > > > > Subject: [indo-oracle] SQL atau Procedure > > > To: "Indo oracle" <[email protected]<indo-oracle%40yahoogroups.com> > > <indo-oracle%40yahoogroups.com> > > > > > > > Date: Thursday, November 6, 2008, 3:02 PM > > > > > > > > > dear master, > > > jika kita membuat suatu query yang akan di eksekusi lewat suatu applikasi > > > external (misal VB, Delphi), akan lebih cepat mana direct SQL atau > > > dilewatkan suatu procedure/function dari segi waktu eksekusi dan > > pemakaian > > > memory . > > > > > > tolong penjelasannya > > > > > > New Email names for you! > > > Get the Email name you've always wanted on the new @ymail and > > > @rocketmail. > > > Hurry before someone else does! > > > http://mail. promotions. yahoo.com/ newdomains/ sg/ > > > > > > [Non-text portions of this message have been removed] > > > > > > [Non-text portions of this message have been removed] > > > > > > > > > > > > > -- > > adipt > > [EMAIL PROTECTED] <aa.adipt%40gmail.com> > > 021 68 535 141 > > http://adipt.net/ > > > > [Non-text portions of this message have been removed] > > > > > > > > > [Non-text portions of this message have been removed] >

