Tracing adalah bagian penting untuk tuning database Oracle. Ini akan membantu menangkap semua pernyataan masalah , acara tunggu yang bertanggung jawab atas lambatnya jalannya sesi.
Database Oracle telah menyediakan banyak cara tercepat untuk melacak sesi lokal, sesi pengguna lain dan memformat pelacakan agar dapat dibaca
Mari kita lihat beberapa cara mengaktifkan pelacakan SQL, peristiwa 10046 di database Oracle dan trcsess, utilitas tkprof
Daftar Isi
SQL Trace ,100046 acara
Jika Anda ingin melacak dalam sesi lokal, berikut adalah langkah-langkah untuk mengaktifkan pelacakan SQL
Jejak normal ubah set sesi sql_trace =true; -- Untuk menempatkan trace onalter session set sql_trace =false; -- Untuk mematikan jejakLevel penuh dengan acara tunggu Dan ikat jejak alter session set events ='10046 trace name context forever, level 12';Untuk mematikan tracing offalter session set events ='10046 trace name context off';Sama seperti Normal trace exec DBMS_SESSION.set_sql_trace(sql_trace => TRUE);exec DBMS_SESSION.set_sql_trace(sql_trace => FALSE);
Jika Anda ingin melacak di sesi lari lainnya, berikut langkah-langkahnya
Jejak normal jalankan dbms_system.set_sql_trace_in_session ('sid','serial',true); -- Untuk meletakkan tracing onexecute dbms_system.set_sql_trace_in_session ('sid','serial',true); -- Untuk menunda pelacakanLevel penuh dengan acara tunggu Dan ikat jejak eksekusi dbms_system.set_ev('sid','serial',10046,12,'');Untuk mematikan jejak jalankan dbms_system.set_ev('sid','serial',10046,0,'');
Anda pasti pernah melihat penggunaan 12,0 dalam berbagai pernyataan di atas. Mereka adalah level tracing. Oracle Tracing memiliki level tracing .Berikut adalah nilai yang valid
0 | Tidak ada jejak. Seperti mematikan sql_trace. |
2 | Setara dengan sql_trace biasa Ini Menyediakan jalur eksekusi, jumlah baris, file datar terkecil Keuntungan Menyediakan jalur eksekusi Menyediakan jumlah baris Menghasilkan file datar terkecil Kerugian Tidak dapat mengetahui nilai apa yang diberikan pada waktu berjalan ke SQL Jika statistik untuk kueri rendah tetapi waktu berjalan lama tidak dapat mengetahui peristiwa apa yang menyebabkan menunggu lama |
4 | Sama dengan 2, tetapi dengan penambahan nilai variabel bind Keuntungan Menyediakan jalur eksekusi Menyediakan jumlah baris Dapat memberi tahu nilai apa pernyataan itu dijalankan Kerugian Sekali lagi jika waktu berjalan lama dan statistik rendah, akan sulit untuk mengetahui alasannya dalam jenis jejak ini. Menghasilkan file datar yang lebih besar daripada jejak biasa karena informasi variabel pengikat harus disimpan. |
8 | Sama dengan 2, tetapi dengan penambahan acara tunggu Regular Trace ditambah pengaturan waktu operasi database yang harus diselesaikan oleh SQL menunggu. Misalnya:pengaturan waktu akses disk. Keuntungan Menyediakan jalur eksekusi Menyediakan jumlah baris Dapat memberi tahu pengaturan waktu untuk semua peristiwa yang terkait dengan SQL. Kekurangan File trace dapat dengan mudah dimaksimalkan karena semua informasi yang harus ditulis Oracle ke file trace dan kemudian hanya sebagian informasi yang tersedia di file trace. Informasi variabel bind tidak tersedia |
12 | Sama dengan 2, tetapi dengan kedua nilai variabel bind dan event wait Pelacakan reguler dengan informasi wait dan bind. Berisi informasi terlengkap dan akan menghasilkan file jejak terbesar. Menyediakan jalur eksekusi Menyediakan jumlah baris Dapat memberi tahu pengaturan waktu untuk semua peristiwa yang terkait dengan SQL. Dapat memberi tahu nilai apa yang SQL dijalankan dengan Keuntungan Menyediakan jalur eksekusi Menyediakan jumlah baris Dapat memberi tahu pengaturan waktu untuk semua peristiwa yang terkait dengan SQL. Dapat memberi tahu nilai apa yang dijalankan SQL Kekurangan File trace dapat dengan mudah dimaksimalkan karena semua informasi yang harus ditulis Oracle ke file trace dan kemudian hanya sebagian informasi yang tersedia di file trace. |
Ada cara lain untuk melakukan tracing juga. Berikut adalah beberapa di antaranya
(1) ORADEBUG
Ini memerlukan login sebagai sysdba
oradebug setospid 1111 -- Debug sesi dengan Oracle yang ditentukan proses idoradebug setorapid 1111 --- Debug sesi dengan OS processoradebug event 10046 trace name context yang ditentukan selamanya, level 4;oradebug event 10046 trace name context off; --- Ini menonaktifkan traceoradebug close_trace --- Ini menutup file traceOradebug TRACEFILE_NAME;
(2) Dengan Oracle 10g, opsi penelusuran SQL telah diperluas menggunakan paket DBMS_MONITOR
JALANKAN dbms_monitor.session_trace_enableYang serupaALTER SESSION SET EVENTS '10046 lacak konteks nama selamanya, level 2';Jalankan dbms_monitor.session_trace_enable (binds=>true);Yang serupaALTER SESI SET ACARA konteks selamanya, level 4' lacak konteks '10046';EXECUTE dbms_monitor.session_trace_enable (wait=>true);Yang serupaALTER SESSION SET EVENTS '10046 melacak konteks nama selamanya, level 8';JALANKAN dbms_monitor.session_trace_enable('sid','serial#')Yang mirip_bevms_system. 'sid','serial',10046,2,'');Jalankan dbms_monitor.session_trace_enable ('sid','serial#',binds=>true);Yang serupa jalankan dbms_system.set_ev('sid','serial' ,10046,4,'');EXECUTE dbms_monitor.session_trace_enable ('sid','serial#',waits=>true);Yang serupa jalankan dbms_system.set_ev('sid','serial',10046,8,'' );
Ada banyak fungsi lain yang tersedia di dbms_monitor. Kami dapat mengaktifkan pelacakan berdasarkan pengidentifikasi klien dan berbagai cara
Cara mengidentifikasi file Trace
Kami dapat mengidentifikasi file jejak menggunakan spid sesi. File pelacakan juga akan berisi pasangan sid,serial# di awal file pelacakan.
Kueri di bawah ini dapat digunakan untuk menemukan file pelacakan sesi lokal
pilih c.value || '/' || d.instance_name ||'_ora_' || a.spid || '.trc' tracefrom v$process a, v$session b, v$parameter c, v$instance dwhere a.addr =b.paddrand b.audsid =userenv('sessionid')and c.name ='user_dump_dest'/
Ada cara mudah lain untuk mengidentifikasi file pelacakan yang disebut pengenal jejak
mengubah set sesi tracefile_identifer='ORAC'; Ini adalah pengenal
Contoh file jejak
File pelacakan /app/Oracle/TEST/diag/rdbms/test/TEST/trace/TEST_ora_13025_IDEN.trcOracle Database 11g Enterprise Edition Rilis 11.2.0.4.0 - Produksi 64bitDengan Partisi, Cluster Aplikasi Nyata, OLAP, Data Mining dan Opsi Pengujian Aplikasi NyataORACLE_HOME =/app/Oracle/TEST/11.2.0/dbNama sistem: SunOS12Node name:sun12Release: 5.10Version: Generic_144488-11Machine: sun4uNama instance:TESTRedo thread yang dipasang oleh instance ini:1Nomor proses Oracle:202Unix process pid , gambar:[email protected] SunOS12*** 21-10-2013 12:28:56.461*** ID SESI:(3875.17341) 21-10-2013 12:28:56.461*** ID KLIEN:() 2013 -10-21 12:28:56.461*** NAMA LAYANAN:(UJI) 21-10-2013 12:28:56.461*** NAMA MODUL:([email protected](TNS V1-V3)) 2013-10 -21 12:28:56.461*** NAMA TINDAKAN:() 21-10-2013 12:28:56.461CLOSE #4:c=0,e=11,dep=1,type=1,tim=8866891135825=====================PARSING DALAM KURSOR #5 len=356 dep=1 uid=173 oct=3 tutup=173 tim=8866891136821 hv=2468783182 ad='4c70e4398' sqlid='0wmwsjy9kd92f'SELECT PROFILE_OPTION_ID, APPLICATION_ID, SITE_ENABLED_FLAG , APP_ENABLED_FLAG , RESP_ENABLED_FLAG , USER_ENABLED_FLAG, ORG_ENABLED_FLAG , SERVER_ENABLED_FLAG, SERVERRESP_ENABLED_FLAG, HIERARCHY_TYPE, USER_CHANGEABLE_FLAG FROM FND_PROFILE_OPTIONS WHERE PROFILE_OPTION_NAME =:B1 AND START_DATE_ACTIVE <=SYSDATE AND NVL(END_DATE_ACTIVE, SYSDATE)>=SYSDATEEND OF STMTBINDS # 5:Bind#0oacdty=01 mxl=128(80) mxlc=00 mal=00 scl=00 pra=00oacflg=03 fl2=1206001 frm=01 csi=871 siz=128 off=0kxsbbbfp=ffffffff7d677b48 bln=128 avl flg=0value="PER_BUSINESS_GROUP_ID"EXEC #5:c=0,e=1474,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=1374985481 ,tim=8866891138224FETCH #5:c=0,e=61,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=1,plh=1374985481,tim=8866891138429TUTUP #5:c=0,e=5,dep=1,type=3,tim=8866891138503======================PARSING DI KURSOR #4 len=230 dep=1 uid=173 okt=3 tutup=173 tim=8866891138634 hv=3575592451 ad='3aeea3da0' sqlid='55dc767ajydh3'SELECT PROFILE_OPTION_VALUE DARI FND_PROFILE_OPTION_VALUES WH ERE PROFILE_OPTION_ID =:B4 DAN APPLICATION_ID =:B3 DAN LEVEL_ID =10003 DAN LEVEL_VALUE =:B2 DAN LEVEL_VALUE_APPLICATION_ID =:B1 DAN PROFILE_OPTION_VALUE BUKAN NULLEND DARI STMTBINDS #4:Bind#0oacdty=22(2100 mxl) 00 scl=00 pra=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0kxsbbbfp=ffffffff7d677b68 bln=22 avl=03 flg=05nilai=1204Bind#1oacdty=02 mxl=22(c=mal=00 scl=00 pra=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=24kxsbbbfp=ffffffff7d677b80 bln=22 avl=02 flg=01nilai=800Bind#2oacdty=02 mxl=22(c =00 mal=00 scl=00 pra=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=48kxsbbbfp=ffffffff7d677b98 bln=22 avl=04 flg=01nilai=50334Ikatan#3oacdty=22(21 mxl ) mxlc=00 mal=00 scl=00 pra=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=72kxsbbbfp=ffffffff7d677bb0 bln=22 avl=01 flg=01nilai=0EXEC #4:c=0, e=377,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=8866891138978FETCH #4:c=0,e=26, p=0,cr=3,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=886689113 9050CLOSE #4:c=0,e=2,dep=1,type=3,tim=8866891139116====================PARSING DI CURSOR #5 len =191 dep=1 uid=173 oct=3 lid=173 tim=8866891139308 hv=303338305 ad='3bedf0e48' sqlid='7qs7fx89194u1'SELECT PROFILE_OPTION_VALUE FROM FND_PROFILE_OPTION_VALUES WHERE PROFILE_OPTION_OPTION_OPTION_OPTION =:B_ID DAN APPLICATION =:B_ LEVEL_VALUE =:B1 DAN PROFILE_OPTION_VALUE BUKAN NULLEND DARI STMTBINDS #5:Bind#0oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pra=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0kxsbbbfp=ffffffff7d673b78 bln=22 avl=03 flg=05nilai=1204Bind#1oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pra=00oacflg=03 fl2=100 csi=00m siz=0 off=24kxsbbbfp=ffffffff7d673b90 bln=22 avl=02 flg=01nilai=800Bind#2oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 sebelum=00oacflg=03 fl2=100 csi =00 siz=0 diskon=48kxsbbbfp=ffffffff7d673ba8 bln=22 avl=04 flg=01nilai=10001
cara memeriksa apakah jejak diaktifkan di oracle
Jika Anda telah mengaktifkan pelacakan menggunakan paket DBMS_MONITOR, kami dapat memeriksa apakah pelacakan diaktifkan menggunakan kueri di bawah ini
setel baris 180col modul untuk a45col sql_trace_waits untuk a20col sql_trace_binds untuk a20col sql_trace untuk a20pilih nama pengguna,modul,sid,sql_trace,sql_trace_waits,sql_trace_binds dari v$session di mana sql_trace='ENABLED'/
Jika diaktifkan melalui metode lain, maka satu-satunya cara untuk memeriksa adalah melihat lokasi jejak dan menemukan file jejak yang terbaru dan kemudian menemukan sid dan serial# di dalamnya dan kemudian Anda dapat meminta v$session untuk menemukan sesi dan Anda dapat menonaktifkan jejak jika Anda mau
Utilitas Oracle tkprof
File jejak yang diperoleh dari metode di atas dalam bentuk mentah yang dapat diubah menjadi format yang lebih mudah dibaca menggunakan utilitas tkprof (utilitas PROFile Kernel Transient)
tkprofUsage:tkprof tracefile outputfile [explain=] [table=][print=] [insert=] [sys=] [sort=]table=schema.tablename Gunakan 'schema.tablename' dengan opsi 'explain='. explain=user/password Hubungkan ke ORACLE dan terbitkan EXPLAIN PLAN.print=integer Cantumkan hanya pernyataan SQL 'integer' pertama.aggregate=yes|noinsert=filename Cantumkan pernyataan SQL dan data di dalam pernyataan INSERT.sys=no TKPROF tidak mencantumkan SQL pernyataan dijalankan sebagai pengguna SYS.record=filename Rekam pernyataan non-rekursif yang ditemukan di file pelacakan.wait=yes|no Rekam ringkasan untuk setiap peristiwa tunggu yang ditemukan di file pelacakan.sort=option Kumpulan nol atau lebih dari opsi pengurutan berikut :prscnt berapa kali parse dipanggilprscpu CPU time parsingprsela waktu yang telah berlalu parsing prsdsk jumlah disk yang dibaca selama parse prsqry jumlah buffer untuk pembacaan yang konsisten selama parseprscu jumlah buffer untuk pembacaan saat ini selama parseprsmis jumlah kesalahan dalam cache library selama parseexecnt jumlah ex ecute disebut execpu CPU waktu yang dihabiskan untuk mengeksekusi exeela waktu yang telah berlalu saat mengeksekusi exedsk jumlah disk yang dibaca selama eksekusi exeqry jumlah buffer untuk pembacaan yang konsisten selama executeexecu jumlah buffer untuk pembacaan saat ini selama executeexerow jumlah baris yang diproses selama executionexemis jumlah library cache yang hilang selama executefchcnt nomor berapa kali fetch dipanggilfchcpu cpu waktu yang dihabiskan untuk mengambilfchela waktu yang telah berlalu mengambilfchdsk jumlah disk yang dibaca selama fetchfchqry jumlah buffer untuk pembacaan yang konsisten selama fetchfchcu jumlah buffer untuk pembacaan saat ini selama fetchfchrow jumlah baris yang diambil id pengguna pengguna yang mengurai kursor
Beberapa contoh
tkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchelatkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchelatkprof file.trc file .txt sys=notkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchelaIni hanya mencetak 10 sql tkprof .trc elaps.prf sys=no explain=apps/ sort=(prsela,exeela,fchela) print=10Ini mencetak semua sql tkprof .trc elaps.prf sys=no explain=apps/apps sort=prsela,exeela,fchela
Contoh isi file tkprof
TKPROF:Rilis 11.2.0.4.0 - Produksi pada Sel 17 Jan 14:12:41 2013Hak Cipta (c) 1982, 2007, Oracle. Semua hak dilindungi undang-undang. File pelacakan:TEST_ora_15941.trcOpsi pengurutan:execpu fchcpu********************************* ********************************************hitung =berapa kali OCI procedure was executionCPU =Waktu CPU dalam detik executionelapsed =waktu yang berlalu dalam detik executiondisk =jumlah pembacaan fisik buffer dari diskquery =jumlah buffer yang diperoleh untuk arus baca yang konsisten =jumlah buffer yang diperoleh dalam mode saat ini (biasanya untuk pembaruan)baris =jumlah baris diproses oleh pengambilan atau eksekusi panggilan******************************************* *************************************ID SQL:6w82ggrtysxPlan Hash:2325776775PILIH FUNCTION_NAME DARI FND_USER_DESKTOP_OBJECTS WHERE USER_ID =:b1 AND APPLICATION_ID =:b2 DAN RESPONSIBILITY_ID =:b3 AND TYPE ='FUNCTION' AND ROWNUM <=10 ORDER BY SEQUENCEcall count cpu telah berlalu ----- disk baris saat ini ---- ---- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 0Fetch 2 0.00 0.00 0 4 0 1 ------- ------ ----- --- ---------- ---------- ---------- ---------- ------- ---total 4 0,00 0,00 0 4 0 1Kehilangan dalam cache perpustakaan selama penguraian:0Mode pengoptimal:ALL_ROWSParsing (Rowsts) Jumlah baris (APid) pengguna yang diambil (APid APid:173) --------- ---------- ---------- ---------- ------------------------------1 1 1 URUTKAN ORDER MENURUT (cr=4 pr=0 pw=0 time=0 us cost=6 size=41 card=1)1 1 1 COUNT STOPKEY (cr=4 pr=0 pw=0 time=0 us)1 1 1 AKSES TABEL MENURUT INDEX ROWID pr=0_wJECTS pr=pn_USER_ =0 biaya kami=5 ukuran=41 kartu=1)1 1 1 RANGE INDEKS S BISA FND_USER_DESKTOP_OBJECTS_N1 (cr=3 pr=0 pw=0 waktu=0 biaya kami=3 ukuran=0 kartu=3)(id objek 33596)Baris Rencana Eksekusi------- --------- --------------------------------------------------0 SELECT STATEMENT MODE:ALL_ROWS1 SORT ( ORDER BY)1 COUNT (STOPKEY)1 TABEL AKSES MODE:DIANALISIS (BERDASARKAN INDEX ROWID) OF'FND_USER_DESKTOP_OBJECTS' (TABLE)1 INDEX MODE:ANALYZED (RANGE SCAN) waktu tunggu'SINDEX_FND_USER'SINDEX_KTOPN_O Acara menunggu pada Waktu Maks. Tunggu Total Menunggu----------------------------------- Menunggu ------ ---- ------------SQL*Pesan bersih ke klien 5 0,00 0,00SQL*Pesan bersih dari klien *** 5 0,00 *** 5 0,00 ************************************************** **************ID SQL:276ut2ywquxPlan Hash:3856112528select object_name, icon_namefromfnd_desktop_objectscall count cpu elapsed disk query current baris ------- ------ -- ---------- ---------- ---------- ---------- -------- --Parse 1 0,00 0,00 0 0 0 0 Execute 1 0,00 0,00 0 0 0 0 0Fetch 3 0,00 0,00 0 6 0 47 ------- ------ -------- ----- ----- ---------- ---------- ---------- ----------total 5 0,00 0,00 0 6 0 47Kehilangan dalam cache perpustakaan d uring parse:0Mode pengoptimal:ALL_ROWSParsing user id:173 (APPS)Jumlah statistik paket yang diambil:1Baris (pertama) Baris (rata-rata) Baris (maks) Operasi Sumber Baris---------- ----- ----- ---------- ----------------------------------- ----------------47 47 47 AKSES TABEL LENGKAP FND_DESKTOP_OBJECTS (cr=6 pr=0 pw=0 time=0 us cost=2 size=1175 card=47)Rows Execution Plan ------- ------------------------------------------------------------------ --------0 PERNYATAAN PILIH MODE:ALL_ROWS47 AKSES TABEL MODE:ANALISIS (PENUH) DARI 'FND_DESKTOP_OBJECTS'(TABLE)
Oracle trcsess utilitas
Saat menggunakan sesi server bersama, banyak proses yang terlibat. Jejak yang berkaitan dengan sesi pengguna tersebar di berbagai file jejak yang termasuk dalam proses yang berbeda. Hal ini membuat sulit untuk mendapatkan gambaran lengkap tentang siklus hidup sesi.
Utilitas trcsess menggabungkan keluaran jejak dari file jejak yang dipilih berdasarkan beberapa kriteria
trcsess [output=output_file_name] [session=session_id] [clientid=client_id] [service=service_name] [action=action_name] [module=module_name] [trace_files]trcsess output=main.trc service=TEST *trcSetelah file jejak konsolidasi dibuat, Anda dapat menjalankan tkprof di atasnya.
Informasi Lebih Lanjut
Dalam 11g dan lebih tinggi, sql_trace juga merupakan acara dan dapat diatur dengan sintaks acara:
SQL> oradebug doc nama acara sql_tracesql_trace:acara untuk sql traceUsage-------sql_tracewait,ikat ,plan_stat ,tingkat Jadi Anda dapat menggunakannya sebagai berikut untuk mengaktifkan SQL_TRACE yang meminta informasi pengikatan:
mengubah acara set sesi 'sql_trace bind=true';atau ikat dan tunggu informasi (perhatikan dipisahkan koma):
mengubah acara set sesi 'sql_trace bind=true, wait=true';Jejak lebih lanjut dapat dibatasi pada sekumpulan SQL_ID jika Anda menyertakan filter untuk itu. Mis.
mengubah acara set sesi 'sql_trace [sql:sql_id=g3yc1js3g2689 | sql_id=7ujay4u33g337]bind=true, wait=true';10046 level EVENT:(nilai sql_trace baru disertakan dalam [..])
Ini adalah nilai bit sehingga dapat disatukan untuk mendapatkan campuran yang berbeda
1 – Mengaktifkan fungsionalitas SQL_TRACE standar (Default)
4 – Sebagai Level 1 PLUS melacak nilai pengikatan [ bind=true ]
8 – Saat pelacakan Level 1 PLUS menunggu [ wait=true ]
Ini sangat berguna untuk melihat gerendel menunggu dll.
tetapi juga dapat digunakan untuk melihat pemindaian tabel lengkap dan pemindaian indeks.Mulai 11g level bit tambahan ini tersedia:
16 – Hasilkan dump baris STAT untuk setiap eksekusi [ plan_stat=all_executions ]
32 – Never dump execution Statistics [ plan_stat=never ]Mulai 11.2.0.2 level bit tambahan ini tersedia:
64 – Adaptive dump of STAT lines. [ plan_stat=adaptive ]
Ini membuang informasi STAT jika SQL membutuhkan waktu lebih dari sekitar 1 menit sehingga
memberikan informasi untuk SQL yang lebih mahal dan untuk eksekusi berbeda dari
SQL tersebut.misalnya:Tingkat kejadian umum adalah 12 yang mencakup keluaran SQL_TRACE standar, pengikatan, penantian, dan
pelacakan garis STAT default.Catatan:
Pembuangan STAT telah diubah dalam 11g sehingga tidak dikumpulkan di semua eksekusi tetapi dibuang setelah eksekusi. Ini telah dilakukan untuk mengatasi kasus di mana kursor tidak ditutup dan oleh karena itu informasi STAT tidak dibuang.
Sekarang kami menjamin untuk menangkap informasi STAT setelah eksekusi. Lihat level bit di atas untuk mendapatkan kontrol yang lebih baik atas jalur STAT.Juga Dibaca
v$active_session_history
jelaskan rencana di Oracle
sql tuning Advisor