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值 |