下面仅仅是对v$sql,v$sqlarea,v$sqltext和v$sql_plan表字段做一些解释说明,我会将官网原文、中文翻译已经个人(小白)的理解,如存在理解有误,请指出评论,也会在空闲之余进行修改。 1,v$sql 1.1 简要说明 原文:v$sqllists statistics on shared SQL areas without the GROUP BY clause and contains one row for e...
额,楼上说的对,不过还真有办法查不到你写的sql语句 字段SQL_TEXT 是VARCHAR2类型长度是1000字符 你可以前面以1000个都是空格 然后后面再写你的语句 这样就差不到你执行的内容了。嘎嘎。。。不过不要搞坏事 要做好孩子 不然妈妈会教育你的。
v$sqlarea : 存储SQL语句的前1000个bytes和一些相关的统计信息,比如累计的执行次数,逻辑读,物理读等统计信息 V$SQLAREA 在Oracle9i, Oracle10.1 和Oracle10.2 版本中字段定义都不太一样,Oracle10.2 中会多出sql_fulltext字段, 是一个CLOB字段。 实际上,v$sqlarea 可以看做 v$sql 根据 sqltext 等 做了 group by ...
sql_text from v$sqlarea order by buffer_gets desc; 备注:sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlines。 如: select * from v$sqltext where sql_id='685jucmq3q7nd'; select * from v$sqltext_with_newlines where sql_id='685jucmq3q7nd';...
(1)使用 least recently used (LRU) algorithm 来管理的,不用的自动踢出,可以使用keep 将需要的语句 保存在 library cache中。 所以应该跟内存大小有关,还有跟调度策略什么的 系统中没有能报错所有sql的视图。 (2)v$session 和gv$session 只在RAC中区别明显,有g是全局的,rac的两个数据库中的内容,没有是但...
[V$SQLAREA中的信息列] HASH_VALUE:SQL语句的Hash值。 ADDRESS:SQL语句在SGA中的地址。 这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。 PARSING_USER_ID:为语句解析第一条CURSOR的用户
v$sqlarea和v$sql两个视图的不同之处在于,v$sql中为每一条SQL保留一个条目,而v$sqlarea中根据sql_text进行group by,通过version_count计算子指针的个数。下面对这个问题进行一点延伸探讨。 首先介绍一下v$sql视图,v$sql视图列举了共享SQL区(Shared SQL Area)中的SQL统计信息,这个视图中的信息未经分组,每个SQL指针都...
V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例: SQL_HASH_VALUE,SQL_ADDRESS:这两列用于鉴别默认被session执行的SQL语句。如果为null或0,那就说明这个session没有执行任何SQL语句。PREV_HASH_VALUE和PREV_ADDRESS两列用来鉴别被session执行的上一条语句...
1)存储的为止不都是相同。其中v$sql和v$sqlarea存储的sql都是位于shared sql area中的sql,而v$sqltext是位于sga中的sql。但文档没有明确说明这里的sga是否还包含了psa(私有sql区域--共享服务器模式下)。 2)存储sql的方式也不同,v$sql和v$sqlarea都是用一行来存储sql全文,而v$sqltext用一行存储sql的一行。