ITPub博客

首页 > 数据库 > Oracle > V$SQL、V$SQLSTATS、V$SQLAREA

V$SQL、V$SQLSTATS、V$SQLAREA

原创 Oracle 作者:lusklusklusk 时间:2016-03-15 11:10:44 0 删除 编辑

V$SQL视图记录了实例启动以来存放在shared pool中的的所有已经解析的SQL语句信息,它不包含GROUP BY字句,并且为每一条SQL语句中单独存放一条记录;但是出于对空间原因有可能会删除旧的sql语句, 存储的是具体的SQL 和执行计划相关信息

(任何一条执行过的语句不管执行了几次在V$SQL中都只有一条记录,V$SQL中会记录执行了几次。两条一模一样的语句但是在不同的schema下执行的两种结果,如select * from t1.test在sye、system下执行则V$SQL只有一条记录。如在sys和system都执行select * from test则V$SQL中有两条记录,两条记录的CHILD_NUMBER和PARSING_SCHEMA_NAME不一样。同一个用户下执行一样的语句如果大小写不一样或加了hint的话则会出现多个V$SQL记录,说明V$SQL对应的sql语句必须一模一样,如果alter system flush shared_pool(主站慎用)后再执行一样的语句,发现语句在V$SQL中的SQL_ID和HASH_VALUE与之前的一样,说明SQL_ID和HASH_VALUE应该是oracle自己的一套算法来的,只是根据sql语句内容来进行转换,sql语句不变则SQL_ID和HASH_VALUE也不变。)

 

V$SQLAREA视图记录了实例启动以来存放在shared pool中的的所有已经解析的SQL语句信息,它包含GROUP BY字句,其中一条记录显示了一条共享SQL区中的统计信息。它提供了有在内存中、解析过的和准备运行的SQL语句的统计信息;

 

V$SQLSTATS视图记录了实例启动以来存放在shared pool中的的所有已经解析的SQL语句信息,也是返回基本的统计信息,但是信息保留的时间比v$sql和v$sqlarea时间长,其中的数据是v$sql和v$sqlarea的子集。

 

 

V$SQL和V$SQLAREA两个视图的不同之处在于,V$SQL中为每一条SQL保留一个条目,而V$SQLAREA可以看做V$SQL根据 sqltext 等 做了 group by 之后的信息

 

所以,查看TOP 10 SQL只需要以V$SQL为基础即可

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2057475/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: AWR——load profile
请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 10年DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174913