永发信息网

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等
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯