oracle通过v$sql视图查询sql的平均执行时间(代码实例)
select sql_text,executions 总执行次数,elapsed_time/1000 总耗时(秒), elapsed_time/nvl(executions,1)/1000 平均耗时(秒), parse_calls 硬解析次数,disk_reads 物理读次数,buffer_gets 读缓存区次数 from v$sql where sql_text like '%select name from emp where empno=1%';
v$sql视图的字段说明如下:
sql_text:sql文本的前1000个字符
sharable_mem:占用的共享内存大小(单位:byte)
persistent_mem:生命期内的固定内存大小(单位:byte)
runtime_mem:执行期内的固定内存大小
sorts:完成的排序数
loaded_versions:显示上下文堆是否载入,1是0否
open_versions:显示子游标是否被锁,1是0否
users_opening:执行语句的用户数
fetches:sql语句的fetch数。
executions:自它被载入缓存库后的执行次数
users_executing:执行语句的用户数
loads:对象被载入过的次数
first_load_time:初次载入时间
invalidations:无效的次数
parse_calls:解析调用次数
disk_reads:读磁盘次数
buffer_gets:读缓存区次数
rows_processed:解析sql语句返回的总列数
command_type:命令类型代号
optimizer_mode:sql语句的优化器模型
optimizer_cost:优化器给出的本次查询成本
parsing_user_id:第一个解析的用户id
parsing_schema_id:第一个解析的计划id
kept_versions:指出是否当前子游标被使用dbms_shared_pool包标记为常驻内存
address:当前游标父句柄地址
type_chk_heap:当前堆类型检查说明
hash_value:缓存库中父语句的hash值
plan_hash_value:数值表示的执行计划。
child_number:子游标数量
module:在第一次解析这条语句是通过调用dbms_application_info.set_module设置的模块名称。
action:在第一次解析这条语句是通过调用dbms_application_info.set_action设置的动作名称。
serializable_aborts:事务未能序列化次数
outline_category:如果outline在解释cursor期间被应用,那么本列将显示出outline各类,否则本列为空
cpu_time:解析/执行/取得等cpu使用时间(单位,毫秒)
elapsed_time:解析/执行/取得等消耗时间(单位,毫秒)
outline_sid:outline session标识
child_address:子游标地址
sqltype:指出当前语句使用的sql语言版本
remote:指出是否游标是一个远程映象(y/n)
object_status:对象状态(valid or invalid)
is_obsolete:当子游标的数量太多的时候,指出游标是否被废弃(y/n)