Penjelasan Anda dibawah hanya berlaku apabila memakai
Rule base optimizer (RBO).
Tanpa adanya info statistik, urutan tabel di FROM dan
WHERE clause bisa mempengaruhi urutan execution plan
di RBO. Sampai2 perlu diakalin dengan menggunakan
kondisi b.order_status || '' = 'open'
utk mensuppress index di kolom order_status :)

Dengan adanya CBO, maka urutan table dan kolom menjadi
tidak penting. Dengan adanya histogram di kolom
order_status, Oracle otomatis bisa tahu kapan harus
memakai index sesuai dengan distribusi data.

regards,
tomi


--- yoga fm <[EMAIL PROTECTED]> wrote:

> Pojok Oracle buletin edisi 01 Mei 2006
>            
> ---------------------------------
> Do you Yahoo!?
>  New and Improved Yahoo! Mail - 1GB free storage!
>   ----------
>
>
****************************************************************************
> Pojok Oracle Buletin                                Edisi 01 Mei 2006
> Redaksi: Erick
> [EMAIL PROTECTED]
>
****************************************************************************
>
> Menggunakan Explain Plan dengan Tree structure
>
> Cara ini digunakan untuk menganalisa query dengan
> pendekatan parent/child.
> Cara adalah sebagai berikut:
> 1.Contoh query
>   explain plan
>   set statement_id = �SQL2� for
>   select a.cust_last_name, a.cust_first_name,
> a.cust_mid_init, b.order_desc,
>       b.order_create_dt
>   from customer a, order_hrd b
>   where cust_phone = :host1
>   and b.cust_no = a.cust_no
>   and b.order_status = �open�;
>
> 2.Query untuk membangun tree structure
>   select LPAD (� �, 2*(level-1)) || operation
> �Operations�,
>   options �Options�,
>   decode(to_char(id),�0�,�Cost= � ||
> nvl(to_char(position),�n/a�),
>   object_name) �Object_name�, id || �-� ||
> nvl(parent_id),0) || �-� ||
>   nvl(position,0) �Order�, substr(optimizer,1,6)
> �Opt�
>   from plan_table
>   start with id = 0
>   abd statement_id = �SQL2�
>   connect by prior id = parent_id
>   and statement_id = �SQL2�;
>
> 3.Keterangan:
>   �Kolom Order menunjukkan parent ID, merupakan
> posisi dari tree
>    structure pada rencana eksekusi (execution plan).
> ID menunjukkan
>    urutan tahapan pengerjaan, tetapi bukan urutan
> eksekusi.
>   �OPT menunjukkan mode optimasi yang digunakan
> (optimizer).
>
> 4.Penjelasan
>   Untuk mengerti bagaimana oracle memproses query,
> kita harus
>   mengerti pada puturan (sequence) apa oracle
> memproses langkah itu dan
>   apa yang dilakukan oracle pada setiap tahap.
>
>   Putaran (sequence) ditentukan oleh hubungan
> parent/child pada
>   setiap tahap. Umumnya child lebih dulu di proses,
> paling tidak satu
>   kali dan merupakan input untuk parent. Ketika
> parent mempunyai
>   beberapa child, proses pengerjaan di urutkan
> berdasarkan nomor tahapan.
>
> 5.Arti dari hasil explain plan
>   Query ini mempunyai 5 tahap. Tahap ketiga di
> eksekusi pertama kali
>   karena berupa pencarian data antara (range scan)
> yang menghasilkan 0, 1,
>   atau banyak ROWID kepada tahap kedua. Untuk setiap
> ROWID yang dihasilkan,
>   pada tahap kedua data yang dihasilkan dari tahap
> ketiga akan diurutkan
>   berdasarkan ROWID dan mengembalikan hasilnya
> kepada tahap pertama. Untuk
>   setiap data yang diterima dari tahap kedua, tahap
> pertama akan mengirimkan
>   cust_no kepada tahap kelima. Pada tahap kelima
> semua nomor customer akan
>   digunakan untuk menjalankan proses unique scan
> untuk mendapatkan ROWID.
>   ROWID yang dihasilka akan dikembalikan kepada
> tahap ke-empat. Jika tidak
>   ditemukan ROWID yang dicari, maka tahap 4 akan
> membertahu tahap pertama
>   untuk meng-eliminasi baris data itu. Jika ROWID
> yang dicari ditemukan,
>   maka tahap empat akan meng-akses tabel berdasarkan
> ROWID dan mengambil
>   data yang dicari. Ketika data yang dicari
> ditemukan, dan jika nomor
>   telepon benar, data itu akan diterukan ke tahap
> pertama.
>
> 6.Performance
>   Query diatas mengambil setiap order yang ada pada
> selang waktu tertentu
>   dan dilanjutkan dengan mencocokkannya dengan data
> customer.
>
> 7.Bandingkan dengan query dibawah ini yang merupakan
> perubahan sintak query
>   di atas.
>   Select a.cust_last_name, a.cust_first_name,
> a.cust_mid_init, b.order_desc,
>   b.order_create_dt
>   from order_hdr b, customer a
>   where cust_phone = :host1
>   and b.cust_no = a.cust.no
>   and b.order_status = �open�;
>
> 8.Penjelasan performance query yang telah diubah.
>   Query diatas menghasilkan susunan tabel akses yang
> baik karena tabel
>   customer merupakan setengah dari query yang di
> eksekusi pertama kali dan
>   kemungkinan besar hanya akan mengembalikan satu
> baris data ke setengah
>   bagian query order.
>
>   Query diatas bukan merupakan query yang baik dari
> sisi optimasi �and �
>   Equal�, karena sistem akan mencari 1000 ROWID
pada
> order_status index untuk
>   dicocokkan dengan semua ROWID pada index cust_no.
>
> 9.Query untuk memperbaiki optimasi �end � equal:
>   Select a.cust_last_name, a.cust_first_name,
> a.cust_mid_init, b.order_desc,
>   b.order_create_dt
>   from order_hdr b, customer a
>   where cust_phone = :host1
>   and b.cust_no = a.cust.no
>   and b.order_status || �� = �open�;
>
> 10.Penjelasan query optimasi �end � equal�
>    Perubahan pada bagian b.order_status || �� =
> �open� dilakukan untuk
>    menghentikan oracle menggunakan index
> order_status.
>
> Catatan
> Sebelum menggunakan explain plan perlu dilakukan
> hal-hal sebagai berikut:
> �Menjalankan skrip pada
> ORACLE_HOME/rdbms/admin/utlxplan.sql.
> �Untuk menampilkan hasil explain plan, lakukan
query
> seperti berikut:
>      o      Select operation, options, object_name, id,
> parent_id
>         from plan_table where statement_id =
> �customer�;


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.lizt.org (NEW)
-----------------------------------------------

Bergabung dengan Indonesia Thin Client User Groups,
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.vze.com




SPONSORED LINKS
Membership database software Database mortgage software Pda database software
Database management software Oracle database administration Oracle database management


YAHOO! GROUPS LINKS




Kirim email ke