千家信息网

Oracle9i中v$sql、v$sqlarea、v$sqltext、v$sql_plan的联系与区别

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,对于同一个SQL语句,如果在不同环境下使用了不同的优化器目标的情况下,会有不同的执行计划,这样就要求分别有一个独立的游标(即子游标)来区别出每一种情况下的不同的运行行为。[@more@]Oracle用
千家信息网最后更新 2026年10月31日Oracle9i中v$sql、v$sqlarea、v$sqltext、v$sql_plan的联系与区别对于同一个SQL语句,如果在不同环境下使用了不同的优化器目标的情况下,会有不同的执行计划,
这样就要求分别有一个独立的游标(即子游标)来区别出每一种情况下的不同的运行行为。[@more@]

Oracle用v$sqlarea中一行保存同样语句的SQL,并用字段version_count的值来指出子游标的个
数,而在v$sql里面为每个子游标保留了一个单独的行。两个表可以通过字段address和hash_value
相互对应。例如下面例子:

SQL> select address,hash_value,sql_text,version_count
2 from v$sqlarea where sql_text like 'select value$ from sys.props%';

ADDRESS HASH_VALUE SQL_TEXT VERSION_COUNT
-------- ---------- ---------------------------------------------- -------------
97F1C9C4 563046721 select value$ from sys.props$ where name = :1 3

SQL> select address,hash_value,child_address,child_number,sql_text
2 from v$sql where sql_text like 'select value$ from sys.props%';

ADDRESS HASH_VALUE CHILD_ADDRESS CHILD_NUMBER SQL_TEXT
-------- ---------- ------------- ------------ ----------------------------------------------
97F1C9C4 563046721 97F1C448 0 select value$ from sys.props$ where name = :1
97F1C9C4 563046721 97EAD3B0 1 select value$ from sys.props$ where name = :1
97F1C9C4 563046721 97E7EEF0 2 select value$ from sys.props$ where name = :1

如果想找出这个SQL语句的执行计划,也可以通过字段address、hash_value和child_number到v$sql_plan中查找,
v$sql_plan中是区分了不同子游标的执行计划的

SQL> select address,child_number,lpad('',2*level)||operation||decode(id,0,' cost='||position) op,
2 options,object_name
3 from v$sql_plan t where address='97F1C9C4' and hash_value=563046721;

ADDRESS CHILD_NUMBER OP OPTIONS OBJECT_NAME
-------- ------------ ------------------------- ----------- -------------
97F1C9C4 2 SELECT STATEMENT cost=0
97F1C9C4 2 TABLE ACCESS FULL PROPS$
97F1C9C4 1 SELECT STATEMENT cost=0
97F1C9C4 1 TABLE ACCESS FULL PROPS$
97F1C9C4 0 SELECT STATEMENT cost=0
97F1C9C4 0 TABLE ACCESS FULL PROPS$

视图v$sqltext中没有SQL语句的相关统计信息,但是v$sqltext用多行来保存sql语句,而v$sqlarea中只能
保存sql语句的前1000个字节,所以如果sql语句大于1000个字节,就要到v$sqltext中查看完整的语句,其字
段PIECE表示每个sql的行顺序。

语句 不同 游标 字段 可以通过 字节 情况 一行 两个 个子 个数 例子 信息 环境 目标 行为 视图 顺序 多行 独立 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 百单网互联网科技有限公司怎么样 华服互联网科技怎么样 互联网通讯科技 奇酷互联网科技公司 奔汉互联网科技 伴你行互联网科技有限公司 互联网科技英文翻译 互联网科技股午盘股票涨跌 贵州叶脉互联网科技有限公司所属行业 宁夏众和广鑫互联网科技有限公司 互联网科技项目计划书材料类 深圳市罗太互联网科技有限公司 互联网科技如何创业 宁波跨境商互联网科技有限公司 科技互联网行业投资研究 互联网高科技行业有哪些企业 互联网界的黑科技 互联网科技手抄报图片 现代科技的标志之一的互联网 互联网科技产业 互联网科技英文翻译 恒生互联网科技指数跳水 广西互联网科技孵化中心 朱啸虎曾投资哪些互联网科技企业 用友工业互联网科技发展 华中科技大学互联网的牛人 黑云互联网科技有限公司 互联网科技股为什么大涨 互联网科技企业商标注意事项
0