v$sql相关

1、v$sql

V$SQL在子游标级别上列出了在共享sql区域的统计信息,他将原始sql文本展现为一行。V$SQL中的视图信息一般在sql执行的最后进行更新。然而,对于长时间执行的sql,每5秒会更新一次v$sql视图。这使得很容易查看长时间执行的sql在运行过程中带来的影响。

v$sql列说明,如没有特别说明,均指子游标

SQL_TEXT 当前正在执行的游标的sql文本的前1000个字符

SQL_FULLTEXT CLOB类型 整个sql文本,不用借助于V$SQL_TEXT视图来查看整个文本。

SQL_ID 库缓存中的SQL父游标的标志

SHARABLE_MEM 子游标使用的共享内存的大小,bytes

PERSISTENT_MEM 子游标生存时间中使用的固定内存的总量,bytes

RUNTIME_MEM 在子游标执行过程中需要的固定内存大小,bytes

SORTS 子游标发生的排序数量

LOADED_VERSIONS 显示上下文堆是否载入,1是,0否

USERS_OPENING 执行这个sql的用户数

FETCHES sql取数据的次数

EXECUTIONS 自从被载入共享池后,sql执行的次数

FIRST_LOAD_TIME 父游标产生的时间戳

PARSE_CALLS 解析调用的次数

DISK_CALLS 读磁盘的次数

DIRECT_WRITES 直接写的次数

BUFFER_GETS 直接从buffer中得到数据的次数

APPLICATION_WAIT_TIME 应用等待时间,毫秒

CONCURRENCY_WAIT_TIME 并发等待时间,毫秒

USER_IO_WAIT_TIME 用户IO等待时间

ROWS_PROCESSED SQL 解析sql返回的总行数

OPTIMIZER_MODE 优化器模式

OPTIMIZER_COST 优化器对于sql给出的成本

PARSING_USER_ID 第一个创建这个子游标的用户id

HASH_VALUES 解析产生的哈希值

CHILD_NUMBER 该子游标的数量

SERVICE 服务名

CPU_TIME 该子游标解析,执行和获取数据使用的CPU时间,毫秒

ELAPSED_TIME sql的执行时间,毫秒

INVALIDATIONS 该子游标的无效次数

MODULE 第一次解析该语句时,通过DBMS_APPLICAITON_INFO.SET_ACTION设置的模块名

ACTION 第一次解析该语句时,通过DBMS_APPLICAITON_INFO.SET_ACTION设置的动作名

IS_OBSOLETE 标记该子游标过期与否,当子游标过大时会发生这种情况

is_bind_sensitive 不仅指出是否使用绑定变量窥测来生成执行计划,而且指出这个执行计划是否依赖于窥测到的值。如果是,这个字段会被设置为Y,否则会被设置为N。

is_bind_aware 表明游标是否使用了扩展的游标共享。如果是,这个字段会被设置为Y,如果不是,这个字段会被设置为N。如果是设置为N,这个游标将被废弃,不再可用。

is_shareable 表明游标能否被共享。如果可以,这个字段会被设置为Y,否则,会被设置为N。如果被设置为N,这个游标将被废弃,不再可用。

2、v$sqlarea

v$sqlarea的字段定义和v$sql基本一致,不同的是V$SQLAREA是在父游标级别上统计的sql信息,v$sql的汇总表,进行了group by hash_value,sql_id的汇总。

3、v$sqltext

本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。

注:V$SQLAREA和v$sql中的SQL_TEXT字段只包括头1000个字符, SQL_FULLTEXT以CLOB方式包含了所有的字符

V$SQLTEXT列说明

HASH_VALUE SQL语句的Hash值

ADDRESS sql语句在SGA中的地址

SQL_TEXT SQL文本。

PIECE SQL语句块的序号

SQL_ID SQL id

COMMAND_TYPE 命令类型,如select、insert等

4、v$sqlstats

V$SQLSTATS是10g R2新加入视图,该视图中保存着sql游标性能的统计信息。 V$SQLSTATS中的列定义和V$SQL与V$SQLAREA中的基本一致,但保存的信息时间更长。由于保存着完整的sql语句,使用起来也更快捷,不需要再将V$SQL和V$SQLTEXT进行关联查询。

5、V$sql_pan

该视图提供了一种方式检查那些执行过的并且仍在缓存中的cursor的执行计划。通常,该视图提供的信息与打印出的EXPLAIN PLAN非常相似,不过,EXPLAIN PLAN显示的是理论上的计划,并不一定在执行的时候就会被使用,但V$SQL_PLAN中包括的是实际被使用的计划。获自EXPLAIN PLAN语句的执行计划跟具体执行的计划可以不同,因为cursor可能被不同的session参数值编译(如,HASH_AREA_SIZE)。利用V$SQL_PLAN中数据可以:

确认当前的执行计划

鉴别创建表索引效果

寻找cursor包括的存取路径(例如,全表查询或范围索引查询)

鉴别索引的选择是否最优

决定是否最优化选择的详细执行计划(如,nested loops join)如开发者所愿。

V$SQL_PLAN的常用列说明:

除了一些新加列,本视图几乎包括所有的PLAN_TABLE列,那些同样存在于PLAN_TABLE 中的列拥有相同的值

ADDRESS 当前cursor父句柄位置

HASH_VALUE 在library cache中父语句的HASH值。ADDRESS和HASH_VALUE这两列可以被用于连接v$sqlarea查询cursor-specific信息。

CHILD_NUMBER 使用这个执行计划的子cursor数。ADDRESS,HASH_VALUE以及CHILD_NUMBER可被用于连接v$sql查询子cursor信息。

OPERATION 在 各步骤执行内部操作的名称,例如:TABLE ACCESS

OPTIONS 描述列OPERATION在操作上的变种,例如:FULL

OBJECT_NODE 用于访问对象的数据库链接database link的名称对于使用并行执行的本地查询该列能够描述操作中输出的次序。

OBJECT# 表或索引对象数量

OBJECT_OWNER 对于包含有表或索引的架构schema 给出其所有者的名称

OBJECT_NAME 表或索引名

OPTIMIZER 执行计划中首列的默认优化模式;例如,CHOOSE。比如业务是个存储数据库,它将告知是否对象是最优化的。

ID 在执行计划中分派到每一步的 序号 。

PARENT_ID 对ID步骤的输出进行操作的下一个执行步骤的ID 。

DEPTH 操作树的深度(或级) ,第一级操作为0级

POSITION 对于具有相同PARENT_ID的操作其相应的处理次序。

COST cost-based方式优化的操作开销的评估,如果语句使用rule-based方式,本列将为空。

CARDINALITY 根据 cost-based 方式 操作所访问的行数的评估。

BYTES 根据cost-based方式操作产生的字节的评估。

OTHER_TAG 其它列的内容说明。

PARTITION_START 范围存取分区中的开始分区。

PARTITION_STOP 范围存取分区中的结束分区。

PARTITION_ID 计算PARTITION_START和PARTITION_STOP这对列值的步数

OTHER 其它信息即执行步骤细节,供用户参考。

DISTRIBUTION 为了并行查询,存储用于从生产服务器到消费服务器分配列的方法

CPU_COST 根据cost-based方式CPU操作开销的评估。如果语句使用rule-based方式,本列为空。

IO_COST 根据cost-based方式I/O操作开销的评估。如果语句使用rule-based方式,本列为空。

TEMP_SPACE 根据cost-based方式操作(sort or hash-join)的临时空间占用评估。如果语句使用rule-based方式,本列为空。

ACCESS_PREDICATES 影响访问结构的谓词,例如,在范围索引查询中的开始或者结束位置。

FILTER_PREDICATES 进行数据过滤的谓词

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早起晚睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值