首页 » SEO优化 » php拜访oracle视图技巧_详解Oracle数据库sql查询视图vsqlvsqlareavsqltext

php拜访oracle视图技巧_详解Oracle数据库sql查询视图vsqlvsqlareavsqltext

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

2) 记录的都是位于内存中的sql内容

3) 由于是内存,以是都不保留历史记录

php拜访oracle视图技巧_详解Oracle数据库sql查询视图vsqlvsqlareavsqltext

02不同点

1、存储的位置不同

php拜访oracle视图技巧_详解Oracle数据库sql查询视图vsqlvsqlareavsqltext
(图片来自网络侵删)

个中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 之后的信息

03视图定义

通过以下语句查一下这些视图的定义,可以看出v$sql及v$sqlarea的源表比较靠近 。

SELECT view_definition FROM v$fixed_view_definition WHERE view_name='GV$SQL';SELECT view_definition FROM v$fixed_view_definition WHERE view_name='GV$SQLAREA'; SELECT view_definition FROM v$fixed_view_definition WHERE view_name='GV$SQLTEXT';

04详细字段

1、 v$sql

SQL_TEXT //当前正在实行的游标的sql文本的前1000个字符SQL_FULLTEXT //CLOB类型 全体sql文本,不用借助于V$SQL_TEXT视图来查看全体文本SQL_ID //库缓存中的SQL父游标的标志SHARABLE_MEM //子游标利用的共享内存的大小,bytesPERSISTENT_MEM //子游标生存韶光中利用的固定内存的总量,bytesRUNTIME_MEM //在子游标实行过程中须要的固定内存大小,bytesSORTS //子游标发生的排序数量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 //第一个创建这个子游标的用户idHASH_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$sql, 相对来说比v$sqlarea快,而且还不会产生share pool latch的争用。
因v$sql及v$sqlarea存放着统计信息在调优时利用居多,但其sql是不全的,如果想得到完全的sql就要用v$sqltext了

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

标签:

相关文章

南宁好IT,智慧城市的创新引擎

随着科技的飞速发展,信息技术(IT)已经渗透到我们生活的方方面面。在我国,南宁作为一座充满活力的城市,正以“南宁好IT”为口号,大...

SEO优化 2024-12-15 阅读0 评论0

合肥IT男,在创新之城书写数字传奇

合肥,这座位于中国华东地区的内陆城市,近年来在科技创新领域取得了令人瞩目的成就。众多IT男在此扎根发芽,书写着属于自己的数字传奇。...

SEO优化 2024-12-15 阅读0 评论0