oracle 游标 慢sql,Oracle性能优化 之 游标及SQL

下面,我们就介绍一下这些相关SQL执行情况的视图。我们再强调一个名词,对于从任何地方传递给Oracle数据库服务器要求执行的东西,我们都称为游标。它主要包括SQL语句和PL/SQL程序段。

1.V$SQL

SQL_TEXT:SQL语句的文本

SQL_FULLTEXT:SQL语句的完全文本

SQL_ID

SHARABLE_MEM:游标所占共享内存

PERSISTENT_MEM:游标持续期所占用的Fixed(固定)内存

RUNTIME_MEM:游标在运行期所占用的Fixed(固定)内存

SORTS:游标完成的排序次数

LOADED_VERSIONS:游标在库缓存所占的内存堆是否被加载

OPEN_VERSIONS:游标是否被锁定。

USERS_OPENING:打开游标的会话数。也就是当前正在缓存游标到PGA中的会话数。游标被执行三次后,就会被缓存到PGA中。此数值就加1。

FETCHES:抓取的次数

EXECUTIONS:执行次数

PX_SERVERS_EXECUTIONS:以并行方式执行的总次数

END_OF_FETCH_COUNT:抓取全部行的次数

USERS_EXECUTING:当前正在执行此游标的会话数

LOADS:游标被加载或重新加载到库缓存中的次数。游标只所以被重新加载有可能是游标无效或库缓存内存不足。

FIRST_LOAD_TIME:游标被第一次被加载的时间。也就是生成执行计划的时间

INVALIDATIONS:游标的无效次数

PARSE_CALLS:游标的解析次数,包括硬解析与软解析

DISK_READS:游标执行了多少次物理读

DIRECT_WRITES:游标直接写的次数

BUFFER_GETS:逻辑读的次数

APPLICATION_WAIT_TIME:应用程序的等待时间,单位微秒

CONCURRENCY_WAIT_TIME:并行的等待时间,单位微秒

CLUSTER_WAIT_TIME:Cluster等待时间

USER_IO_WAIT_TIME:用户I/O等待时间

PLSQL_EXEC_TIME:PL/SQL执行时间

JAVA_EXEC_TIME:Java执行时间

ROWS_PROCESSED:游标一共抓取了多少行。同样的行,每抓取一次此列都会增加

COMMAND_TYPE:命令类型

OPTIMIZER_MODE:优化器模式

OPTIMIZER_COST:执行计划的成本

OPTIMIZER_ENV:执行时的环境

OPTIMIZER_ENV_HASH_VALUE:环境的HASH值

PARSING_USER_ID:最先解析此游标的用户的ID

PARSING_SCHEMA_ID:最先解析此游标的方案ID

PARSING_SCHEMA_NAME:最先解析此游标的方案ID

KEPT_VERSIONS:是否使用DBMS_SHARED_POOL包将游标Pin到库缓存中

ADDRESS:父游标句柄的地址

TYPE_CHK_HEAP:

HASH_VALUE:游标的HASH值

OLD_HASH_VALUE:老HASH值

PLAN_HASH_VALUE:执行计划的HASH值。(上述三个HASH值并不相同)

CHILD_NUMBER:子游标数量

SERVICE:

SERVICE_HASH

MODULE:第一次解析游标的应用程序名。可以在应用程序中通过调用DBMS_APPLICATION_INFO.SET_MODULE设置。

MODULE_HASH:应用程序名的HASH值

ACTION:第一次解析时的动作名。可以在应用程序中通过调用DBMS_APPLICATION_INFO.SET_ACTION设置。

ACTION_HASH:动作名的HASh值

SERIALIZABLE_ABORTS:每个游标产生ORA-08177 errors错误(事务串行化无效)的次数。

OUTLINE_CATEGORY:大纲类型

CPU_TIME:游标解析、执行、抓取时所用的CPU时间。单位是微秒。

ELAPSED_TIME:游标解析、执行、抓取时所用的总时间。单位是微秒。

OUTLINE_SID:大纲会话的SID

CHILD_ADDRESS:游标本身的地址

SQLTYPE:游标所用的SQL语言的版本

REMOTE:游标是否是远端映像的

OBJECT_STATUS:对象状态

LITERAL_HASH_VALUE:游标文本的HASH值

LAST_LOAD_TIME:执行计划最后一次被加载到库缓存中的时间。

IS_OBSOLETE:当子游标太多时,此子游标是否被荒废。

CHILD_LATCH:保护游标的子闩编号

SQL_PROFILE:SQL的概要文件

PROGRAM_ID:过程ID

PROGRAM_LINE#

EXACT_MATCHING_SIGNATURE

FORCE_MATCHING_SIGNATURE

LAST_ACTIVE_TIME:最后一次使用执行计划的时间。

BIND_DATA:绑定变量的信息

这个视图中DISK_READS、BUFFER_GETS、CPU_TIME、ELAPSED_TIME这四个列在调优SQL语句时最为重要。在数据库系统的速度不是太另人满意时,如果你已经确定过了,不是其他方面的原因,而是SQL语句性能的问题,只是无法确定是那条、或那些条语句拖慢了整体的速度。那么此时选择调优物理读、逻辑读最多的,或最耗CPU时间的SQL语句进行调节,往往可以取得今人满意的性能增长。0b1331709591d260c1c78e86d0c51c18.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值