v$sql v$sqlarea v$sqltext多久刷新
答案:2 悬赏:20 手机版
解决时间 2021-01-01 22:05
- 提问者网友:刺鸟
- 2021-01-01 15:01
v$sql v$sqlarea v$sqltext多久刷新
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-01-01 16:11
1)都存储了sql内容 2) 记录的都是位于内存中的sql内容 3) 因为是内存,所以都不保留历史记录!
全部回答
- 1楼网友:何以畏孤独
- 2021-01-01 17:09
共同点:
1)都存储了sql内容
2) 记录的都是位于内存中的sql内容
3) 因为是内存,所以都不保留历史记录
不同点:
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的一行。
3)v$sql不存储包含group by 的sql语句。通常这个视图,在每个查询执行完成后更新,但对于执行很久的sql,它是每5秒更新一次,这点对于查看sql执行状态是有意义的。
4)存储的明细不同--这是最基本的。
v$sql在子游标级别上列出了在共享sql区域的统计信息,他将原始sql文本展现为一行。v$sql中的视图信息一般在sql执行的最后进行更新。然而,对于长时间执行的sql,每5秒会更新一次v$sql视图。这使得很容易查看长时间执行的sql在运行过程中带来的影响。
v$sql列说明,如没有特别说明,均指子游标,存储的是具体的sql 和执行计划相关信息,实际上,v$sqlarea 可以看做 v$sql 根据 sqltext 等 做了 group by 之后的信息
sql> desc v$sql
name null? type
----------------------------------------- -------- ----------------------------
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,这个游标将被废弃,不再可用。 v$sqlarea的字段定义和v$sql基本一致,不同的是v$sqlarea是在父游标级别上统计的sql信息,v$sql的汇总表,进行了group by hash_value,sql_id的汇总。
sql> desc v$sqlarea
name null? type
sql_text varchar2(1000)
sharable_mem number
persistent_mem number
runtime_mem number
sorts number
version_count number
loaded_versions number
open_versions number
users_opening number
fetches number
executions number
users_executing number
loads number
first_load_time varchar2(38)
invalidations number
parse_calls number
disk_reads number
buffer_gets number
rows_processed number
command_type number
optimizer_mode varchar2(25)
parsing_user_id number
parsing_schema_id number
kept_versions number
address raw(4)
hash_value number
module varchar2(64)
module_hash number
action varchar2(64)
action_hash number
serializable_aborts number
cpu_time number
elapsed_time number
is_obsolete varchar2(1)
child_latch number
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等
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯