以unix下的oracle為例。
1、察看session當(dāng)前執(zhí)行的SQL語句
   使用top命令查看oracle服務(wù)進(jìn)程的cpu占用情況,通常情況下單個進(jìn)程占用cpu不應(yīng)超過5%,如果超過10%,則可認(rèn)為數(shù)據(jù)庫的檢索策略有問題。如果發(fā)生了這種情況,可能是該oracle服務(wù)進(jìn)程代表的session當(dāng)前執(zhí)行的SQL語句耗費了大量的時間。記下該oracle服務(wù)進(jìn)程的進(jìn)程號PID,如“340356”,在sqlplus中使用如下的語句獲得oracle服務(wù)進(jìn)程的session id及對應(yīng)的應(yīng)用進(jìn)程信息,如進(jìn)程號、主機名、程序名、正執(zhí)行的SQL語句在緩沖池中的編號等:
SQL>select s.sid,s.serial#,s.process,s.machine,s.program,s.sql_hash_value from v$session s, v$process p where p.spid='340356' and s.paddr=p.addr;

獲得該oracle服務(wù)進(jìn)程會話當(dāng)前使用的SQL語句:

SQL>select q.sql_text from v$session s, v$process p,v$sqlarea q where p.spid='340356' and s.paddr=p.addr and s.sql_hash_value=q.hash_value;
用這個方法得到的結(jié)果并不一定準(zhǔn)確,但效率低下的SQL往往會在會話中停留較長的時間,所以在大部分的情況下,這個方法可以對我們定位SQL語句執(zhí)行效率的性能問題有所幫助。