Oracle資料庫監聽SQL語句效能

2021-06-28 00:16:35 字數 1172 閱讀 3591

1、v$sql檢視

假定使用者a與使用者b都基於自身schema建立了表t

使用者a發布查詢select * from t,此時共享池中產生一條與該語句的相關的sql游標,在v$sql檢視體現(假定為首次執行)

不久使用者b也發出select * from t的查詢,同上,v$sql中也對應有一條該語句的游標

為了便於理解,我們將v$sql檢視中的sql文字稱之為游標,將v$sqlarea中的sql文字稱為sql語句

2、v$sqlarea

對於上述情形

此時v$sqlarea則是對檢視v$sql的乙個聚合,也即是相當於對檢視v$sql使用了distinct關鍵字。

儘管v$sql中出現了兩條select * from t,而v$sqlarea僅為一條

v$sqlarea提供的是每條sql語句執行的彙總資訊

3、v$sqltext

該檢視包括shared pool中sql語句的完整文字,但一條sql語句是被分成多個塊來進行儲存的。

對於比較短的sql語句,乙個piece就搞定,對於比較長的sql語句則需要多個piece的結合來完整展現一條真正的sql語句。

4、v$sqltext_with_newlines

該檢視用於完整儲存sql語句所有字元,保留sql語句的回車和製表符。

column

datatype

descrption

sql_text

varchar2(1000)

當前sql指標的前1000個字元(也就是說這裡記錄的sql是不完整的)

executions

number

執行次數

disk_reads

number

這個子指標disk read的次數

buffer_gets

number

這個子指標的buffer gets數量

optimizer_mode

varchar2(10)

sql執行的優化器模式

optimizer_cost

number

sql執行成本

hash_value

number

在library cache中父指標的hash value值

監聽 監測oracle資料庫執行的SQL語句

select a.sid,a.serial a.status,a.username,哪個使用者執行的sql d.spid 程序號,b.sql text sql內容,a.machine 計算機名稱,a.module 執行方式,to char cast c.sofar totalwork 100 as ...

資料庫 Oracle監聽例項詳解

oracle例項別名 imcdb description address protocol tcp host localhost port 1521 connect data server dedicated service name imcdb.imc.com imcdb 連線描述符名 例項別名 ...

Oracle資料庫中 in與exists語句的區別

一 in的理解 如sql select from t1 where x in select y from t2 中,先執行select y from t2,等價於select from t1,select distinct y from t2 t2 wheret1.x t2.y。可以理解為 先進行子...