SQL ordered by Version Count
2012-08-01 12:32
281 查看
v$sql v$sqlarea v$sql_shared_cursor及父游标子游标
1. v$sql和v$sqlarea的区别
v$sql和v$sqlarea从某种意义上具有父子关系。即v$sqlarea保存的是父游标的sql信息,而v$sql保存的是子游标的sql的信息。在v$sqlarea里面有一列VERSION_COUNT字段,其中代表的就是对于此父游标的子游标的数量,也就是在v$sql里面的子游标的sql记录的数量。在v$sql中有一列CHILD_NUMBER字段,表示该字游标的编号。可以说v$sqlarea和v$sql是一对多的父子关系。
2. 父游标和子游标
每种类型的dml语句都需要如下阶段:
Create a Cursor 创建游标
Parse the Statement 分析语句
Bind Any Variables 绑定变量
Run the Statement 运行语句
Close the Cursor 关闭游标
当数据库第一次对一条SQL语句进行硬解析的时候,会在库缓存中分配一些内存,并将新产生的父游标保存进去。与父游标有关的关键信息是这个SQL语句的文本,这个时候,会在v$sqlarea里面插入一条记录。那么,在什么情况下会产生子游标呢,当数据库又碰到一条完全相同SQL语句,但是语句的执行计划和执行环境发生了变化,比如由于绑定变量窥测而产生的不一致的执行计划,由于SQL的初始化参数optimizer_mode的不同以及绑定变量分级的情况都会产生子游标,当产生子游标的时候,会在v$sql里面插入一条记录。并且v$sqlarea里的VERSION_COUNT字段的值会加1。
SQL> select * from v$sqlarea where version_count > 1000;
SQL> SELECT distinct
2 ACL_MISMATCH, ANYDATA_TRANSFORMATION,
3 AUTH_CHECK_MISMATCH, BIND_MISMATCH, BIND_PEEKED_PQ_MISMATCH,
4 BIND_UACS_DIFF, BUFFERED_DML_MISMATCH, --CHILD_ADDRESS, CHILD_NUMBER, ADDRESS,
5 CROSSEDITION_TRIGGER_MISMATCH, CURSOR_PARTS_MISMATCH,
6 DESCRIBE_MISMATCH, DIFFERENT_LONG_LENGTH, DIFF_CALL_DURN,
7 EDITION_MISMATCH, EXPLAIN_PLAN_CURSOR, FLASHBACK_ARCHIVE_MISMATCH,
8 FLASHBACK_CURSOR, FLASHBACK_TABLE_MISMATCH, FORCE_HARD_PARSE,
9 INCOMPLETE_CURSOR, INCOMP_LTRL_MISMATCH, INST_DRTLD_MISMATCH,
10 INSUFF_PRIVS, INSUFF_PRIVS_REM, LANGUAGE_MISMATCH,
11 LITERAL_MISMATCH, LITREP_COMP_MISMATCH, LOAD_OPTIMIZER_STATS,
12 LOAD_RUNTIME_HEAP_FAILED, LOCK_USER_SCHEMA_FAILED, LOGICAL_STANDBY_APPLY,
13 LOGMINER_SESSION_MISMATCH, MULTI_PX_MISMATCH, MV_QUERY_GEN_MISMATCH,
14 MV_REWRITE_MISMATCH, MV_STALEOBJ_MISMATCH, NO_TRIGGER_MISMATCH,
15 OPTIMIZER_MISMATCH, OPTIMIZER_MODE_MISMATCH, OUTLINE_MISMATCH,
16 OVERLAP_TIME_MISMATCH, PDML_ENV_MISMATCH, PLSQL_CMP_SWITCHS_DIFF,
17 PLSQL_DEBUG, PQ_SLAVE_MISMATCH, PX_MISMATCH,
18 REMOTE_MAPPING_MISMATCH, REMOTE_TRANS_MISMATCH, ROLL_INVALID_MISMATCH,
19 ROW_LEVEL_SEC_MISMATCH, SLAVE_QC_MISMATCH, SQL_ID,
20 SQL_TYPE_MISMATCH, STATS_ROW_MISMATCH, STB_OBJECT_MISMATCH,
21 TOP_LEVEL_DDL_MISMATCH, TOP_LEVEL_RPI_CURSOR, TRANSLATION_MISMATCH,
22 TYPCHK_DEP_MISMATCH, TYPECHECK_MISMATCH, UNBOUND_CURSOR,
23 USER_BIND_PEEK_MISMATCH
24 FROM v$sql_shared_cursor
25 WHERE sql_id IN ('fndaxz4n1gdsg');
ACL_MISMATCH ANYDATA_TRANSFORMATION AUTH_CHECK_MISMATCH BIND_MISMATCH BIND_PEEKED_PQ_MISMATCH BIND_UACS_DIFF BUFFERED_DML_MISMATCH CROSSEDITION_TRIGGER_MISMATCH CURSOR_PARTS_MISMATCH DESCRIBE_MISMATCH DIFFERENT_LONG_LENGTH DIFF_CALL_DURN EDITION_MISMATCH EXPLAIN_PLAN_CURSOR
FLASHBACK_ARCHIVE_MISMATCH FLASHBACK_CURSOR FLASHBACK_TABLE_MISMATCH FORCE_HARD_PARSE INCOMPLETE_CURSOR INCOMP_LTRL_MISMATCH INST_DRTLD_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM LANGUAGE_MISMATCH LITERAL_MISMATCH LITREP_COMP_MISMATCH LOAD_OPTIMIZER_STATS LOAD_RUNTIME_HEAP_FAILED
LOCK_USER_SCHEMA_FAILED LOGICAL_STANDBY_APPLY LOGMINER_SESSION_MISMATCH MULTI_PX_MISMATCH MV_QUERY_GEN_MISMATCH MV_REWRITE_MISMATCH MV_STALEOBJ_MISMATCH NO_TRIGGER_MISMATCH OPTIMIZER_MISMATCH OPTIMIZER_MODE_MISMATCH OUTLINE_MISMATCH OVERLAP_TIME_MISMATCH PDML_ENV_MISMATCH
PLSQL_CMP_SWITCHS_DIFF PLSQL_DEBUG PQ_SLAVE_MISMATCH PX_MISMATCH REMOTE_MAPPING_MISMATCH REMOTE_TRANS_MISMATCH ROLL_INVALID_MISMATCH ROW_LEVEL_SEC_MISMATCH SLAVE_QC_MISMATCH SQL_ID SQL_TYPE_MISMATCH STATS_ROW_MISMATCH STB_OBJECT_MISMATCH TOP_LEVEL_DDL_MISMATCH
TOP_LEVEL_RPI_CURSOR TRANSLATION_MISMATCH TYPCHK_DEP_MISMATCH TYPECHECK_MISMATCH UNBOUND_CURSOR USER_BIND_PEEK_MISMATCH
------------ ---------------------- ------------------- ------------- ----------------------- -------------- --------------------- ----------------------------- --------------------- ----------------- --------------------- -------------- ---------------- -------------------
-------------------------- ---------------- ------------------------ ---------------- ----------------- -------------------- ------------------- ------------ ---------------- ----------------- ---------------- -------------------- -------------------- ------------------------
----------------------- --------------------- ------------------------- ----------------- --------------------- ------------------- -------------------- ------------------- ------------------ ----------------------- ---------------- --------------------- -----------------
---------------------- ----------- ----------------- ----------- ----------------------- --------------------- --------------------- ---------------------- ----------------- ------------- ----------------- ------------------ ------------------- ----------------------
-------------------- -------------------- ------------------- ------------------ -------------- -----------------------
N N N Y N N N N N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N N
N N N N N N N N N fndaxz4n1gdsg N N N N
N N N N N N
SQL>
查询出来只有一条记录。
只有CHILD_ADDRESS, CHILD_NUMBER, ADDRESS这三个字段的值不一样。
SQL> SELECT distinct
2 ACL_MISMATCH, ANYDATA_TRANSFORMATION,
3 AUTH_CHECK_MISMATCH, BIND_MISMATCH, BIND_PEEKED_PQ_MISMATCH,
4 BIND_UACS_DIFF, BUFFERED_DML_MISMATCH, --CHILD_ADDRESS, CHILD_NUMBER, ADDRESS,
5 CROSSEDITION_TRIGGER_MISMATCH, CURSOR_PARTS_MISMATCH,
6 DESCRIBE_MISMATCH, DIFFERENT_LONG_LENGTH, DIFF_CALL_DURN,
7 EDITION_MISMATCH, EXPLAIN_PLAN_CURSOR, FLASHBACK_ARCHIVE_MISMATCH,
8 FLASHBACK_CURSOR, FLASHBACK_TABLE_MISMATCH, FORCE_HARD_PARSE,
9 INCOMPLETE_CURSOR, INCOMP_LTRL_MISMATCH, INST_DRTLD_MISMATCH,
10 INSUFF_PRIVS, INSUFF_PRIVS_REM, LANGUAGE_MISMATCH,
11 LITERAL_MISMATCH, LITREP_COMP_MISMATCH, LOAD_OPTIMIZER_STATS,
12 LOAD_RUNTIME_HEAP_FAILED, LOCK_USER_SCHEMA_FAILED, LOGICAL_STANDBY_APPLY,
13 LOGMINER_SESSION_MISMATCH, MULTI_PX_MISMATCH, MV_QUERY_GEN_MISMATCH,
14 MV_REWRITE_MISMATCH, MV_STALEOBJ_MISMATCH, NO_TRIGGER_MISMATCH,
15 OPTIMIZER_MISMATCH, OPTIMIZER_MODE_MISMATCH, OUTLINE_MISMATCH,
16 OVERLAP_TIME_MISMATCH, PDML_ENV_MISMATCH, PLSQL_CMP_SWITCHS_DIFF,
17 PLSQL_DEBUG, PQ_SLAVE_MISMATCH, PX_MISMATCH,
18 REMOTE_MAPPING_MISMATCH, REMOTE_TRANS_MISMATCH, ROLL_INVALID_MISMATCH,
19 ROW_LEVEL_SEC_MISMATCH, SLAVE_QC_MISMATCH, SQL_ID,
20 SQL_TYPE_MISMATCH, STATS_ROW_MISMATCH, STB_OBJECT_MISMATCH,
21 TOP_LEVEL_DDL_MISMATCH, TOP_LEVEL_RPI_CURSOR, TRANSLATION_MISMATCH,
22 TYPCHK_DEP_MISMATCH, TYPECHECK_MISMATCH, UNBOUND_CURSOR,
23 USER_BIND_PEEK_MISMATCH
24 FROM v$sql_shared_cursor
25 WHERE sql_id IN ('ayhn8kx4p011p');
ACL_MISMATCH ANYDATA_TRANSFORMATION AUTH_CHECK_MISMATCH BIND_MISMATCH BIND_PEEKED_PQ_MISMATCH BIND_UACS_DIFF BUFFERED_DML_MISMATCH CROSSEDITION_TRIGGER_MISMATCH CURSOR_PARTS_MISMATCH DESCRIBE_MISMATCH DIFFERENT_LONG_LENGTH DIFF_CALL_DURN EDITION_MISMATCH EXPLAIN_PLAN_CURSOR
FLASHBACK_ARCHIVE_MISMATCH FLASHBACK_CURSOR FLASHBACK_TABLE_MISMATCH FORCE_HARD_PARSE INCOMPLETE_CURSOR INCOMP_LTRL_MISMATCH INST_DRTLD_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM LANGUAGE_MISMATCH LITERAL_MISMATCH LITREP_COMP_MISMATCH LOAD_OPTIMIZER_STATS LOAD_RUNTIME_HEAP_FAILED
LOCK_USER_SCHEMA_FAILED LOGICAL_STANDBY_APPLY LOGMINER_SESSION_MISMATCH MULTI_PX_MISMATCH MV_QUERY_GEN_MISMATCH MV_REWRITE_MISMATCH MV_STALEOBJ_MISMATCH NO_TRIGGER_MISMATCH OPTIMIZER_MISMATCH OPTIMIZER_MODE_MISMATCH OUTLINE_MISMATCH OVERLAP_TIME_MISMATCH PDML_ENV_MISMATCH
PLSQL_CMP_SWITCHS_DIFF PLSQL_DEBUG PQ_SLAVE_MISMATCH PX_MISMATCH REMOTE_MAPPING_MISMATCH REMOTE_TRANS_MISMATCH ROLL_INVALID_MISMATCH ROW_LEVEL_SEC_MISMATCH SLAVE_QC_MISMATCH SQL_ID SQL_TYPE_MISMATCH STATS_ROW_MISMATCH STB_OBJECT_MISMATCH TOP_LEVEL_DDL_MISMATCH
TOP_LEVEL_RPI_CURSOR TRANSLATION_MISMATCH TYPCHK_DEP_MISMATCH TYPECHECK_MISMATCH UNBOUND_CURSOR USER_BIND_PEEK_MISMATCH
------------ ---------------------- ------------------- ------------- ----------------------- -------------- --------------------- ----------------------------- --------------------- ----------------- --------------------- -------------- ---------------- -------------------
-------------------------- ---------------- ------------------------ ---------------- ----------------- -------------------- ------------------- ------------ ---------------- ----------------- ---------------- -------------------- -------------------- ------------------------
----------------------- --------------------- ------------------------- ----------------- --------------------- ------------------- -------------------- ------------------- ------------------ ----------------------- ---------------- --------------------- -----------------
---------------------- ----------- ----------------- ----------- ----------------------- --------------------- --------------------- ---------------------- ----------------- ------------- ----------------- ------------------ ------------------- ----------------------
-------------------- -------------------- ------------------- ------------------ -------------- -----------------------
N N N Y N N N N N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
N N N Y N N N N N N N N N N
N N N N N N N N N N N N Y N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N Y N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
SQL>
查询出来只有三条记录。
SQL> SELECT sql_id, count(1)
2 FROM v$sql_shared_cursor
3 WHERE sql_id IN ('fndaxz4n1gdsg', 'ayhn8kx4p011p')
4 group by sql_id
5 ;
SQL_ID COUNT(1)
------------- ----------
ayhn8kx4p011p 658
fndaxz4n1gdsg 201
SQL>
没有发现什么不同却产生了太多的Version Count。
1. v$sql和v$sqlarea的区别
v$sql和v$sqlarea从某种意义上具有父子关系。即v$sqlarea保存的是父游标的sql信息,而v$sql保存的是子游标的sql的信息。在v$sqlarea里面有一列VERSION_COUNT字段,其中代表的就是对于此父游标的子游标的数量,也就是在v$sql里面的子游标的sql记录的数量。在v$sql中有一列CHILD_NUMBER字段,表示该字游标的编号。可以说v$sqlarea和v$sql是一对多的父子关系。
2. 父游标和子游标
每种类型的dml语句都需要如下阶段:
Create a Cursor 创建游标
Parse the Statement 分析语句
Bind Any Variables 绑定变量
Run the Statement 运行语句
Close the Cursor 关闭游标
当数据库第一次对一条SQL语句进行硬解析的时候,会在库缓存中分配一些内存,并将新产生的父游标保存进去。与父游标有关的关键信息是这个SQL语句的文本,这个时候,会在v$sqlarea里面插入一条记录。那么,在什么情况下会产生子游标呢,当数据库又碰到一条完全相同SQL语句,但是语句的执行计划和执行环境发生了变化,比如由于绑定变量窥测而产生的不一致的执行计划,由于SQL的初始化参数optimizer_mode的不同以及绑定变量分级的情况都会产生子游标,当产生子游标的时候,会在v$sql里面插入一条记录。并且v$sqlarea里的VERSION_COUNT字段的值会加1。
SQL> select * from v$sqlarea where version_count > 1000;
SQL> SELECT distinct
2 ACL_MISMATCH, ANYDATA_TRANSFORMATION,
3 AUTH_CHECK_MISMATCH, BIND_MISMATCH, BIND_PEEKED_PQ_MISMATCH,
4 BIND_UACS_DIFF, BUFFERED_DML_MISMATCH, --CHILD_ADDRESS, CHILD_NUMBER, ADDRESS,
5 CROSSEDITION_TRIGGER_MISMATCH, CURSOR_PARTS_MISMATCH,
6 DESCRIBE_MISMATCH, DIFFERENT_LONG_LENGTH, DIFF_CALL_DURN,
7 EDITION_MISMATCH, EXPLAIN_PLAN_CURSOR, FLASHBACK_ARCHIVE_MISMATCH,
8 FLASHBACK_CURSOR, FLASHBACK_TABLE_MISMATCH, FORCE_HARD_PARSE,
9 INCOMPLETE_CURSOR, INCOMP_LTRL_MISMATCH, INST_DRTLD_MISMATCH,
10 INSUFF_PRIVS, INSUFF_PRIVS_REM, LANGUAGE_MISMATCH,
11 LITERAL_MISMATCH, LITREP_COMP_MISMATCH, LOAD_OPTIMIZER_STATS,
12 LOAD_RUNTIME_HEAP_FAILED, LOCK_USER_SCHEMA_FAILED, LOGICAL_STANDBY_APPLY,
13 LOGMINER_SESSION_MISMATCH, MULTI_PX_MISMATCH, MV_QUERY_GEN_MISMATCH,
14 MV_REWRITE_MISMATCH, MV_STALEOBJ_MISMATCH, NO_TRIGGER_MISMATCH,
15 OPTIMIZER_MISMATCH, OPTIMIZER_MODE_MISMATCH, OUTLINE_MISMATCH,
16 OVERLAP_TIME_MISMATCH, PDML_ENV_MISMATCH, PLSQL_CMP_SWITCHS_DIFF,
17 PLSQL_DEBUG, PQ_SLAVE_MISMATCH, PX_MISMATCH,
18 REMOTE_MAPPING_MISMATCH, REMOTE_TRANS_MISMATCH, ROLL_INVALID_MISMATCH,
19 ROW_LEVEL_SEC_MISMATCH, SLAVE_QC_MISMATCH, SQL_ID,
20 SQL_TYPE_MISMATCH, STATS_ROW_MISMATCH, STB_OBJECT_MISMATCH,
21 TOP_LEVEL_DDL_MISMATCH, TOP_LEVEL_RPI_CURSOR, TRANSLATION_MISMATCH,
22 TYPCHK_DEP_MISMATCH, TYPECHECK_MISMATCH, UNBOUND_CURSOR,
23 USER_BIND_PEEK_MISMATCH
24 FROM v$sql_shared_cursor
25 WHERE sql_id IN ('fndaxz4n1gdsg');
ACL_MISMATCH ANYDATA_TRANSFORMATION AUTH_CHECK_MISMATCH BIND_MISMATCH BIND_PEEKED_PQ_MISMATCH BIND_UACS_DIFF BUFFERED_DML_MISMATCH CROSSEDITION_TRIGGER_MISMATCH CURSOR_PARTS_MISMATCH DESCRIBE_MISMATCH DIFFERENT_LONG_LENGTH DIFF_CALL_DURN EDITION_MISMATCH EXPLAIN_PLAN_CURSOR
FLASHBACK_ARCHIVE_MISMATCH FLASHBACK_CURSOR FLASHBACK_TABLE_MISMATCH FORCE_HARD_PARSE INCOMPLETE_CURSOR INCOMP_LTRL_MISMATCH INST_DRTLD_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM LANGUAGE_MISMATCH LITERAL_MISMATCH LITREP_COMP_MISMATCH LOAD_OPTIMIZER_STATS LOAD_RUNTIME_HEAP_FAILED
LOCK_USER_SCHEMA_FAILED LOGICAL_STANDBY_APPLY LOGMINER_SESSION_MISMATCH MULTI_PX_MISMATCH MV_QUERY_GEN_MISMATCH MV_REWRITE_MISMATCH MV_STALEOBJ_MISMATCH NO_TRIGGER_MISMATCH OPTIMIZER_MISMATCH OPTIMIZER_MODE_MISMATCH OUTLINE_MISMATCH OVERLAP_TIME_MISMATCH PDML_ENV_MISMATCH
PLSQL_CMP_SWITCHS_DIFF PLSQL_DEBUG PQ_SLAVE_MISMATCH PX_MISMATCH REMOTE_MAPPING_MISMATCH REMOTE_TRANS_MISMATCH ROLL_INVALID_MISMATCH ROW_LEVEL_SEC_MISMATCH SLAVE_QC_MISMATCH SQL_ID SQL_TYPE_MISMATCH STATS_ROW_MISMATCH STB_OBJECT_MISMATCH TOP_LEVEL_DDL_MISMATCH
TOP_LEVEL_RPI_CURSOR TRANSLATION_MISMATCH TYPCHK_DEP_MISMATCH TYPECHECK_MISMATCH UNBOUND_CURSOR USER_BIND_PEEK_MISMATCH
------------ ---------------------- ------------------- ------------- ----------------------- -------------- --------------------- ----------------------------- --------------------- ----------------- --------------------- -------------- ---------------- -------------------
-------------------------- ---------------- ------------------------ ---------------- ----------------- -------------------- ------------------- ------------ ---------------- ----------------- ---------------- -------------------- -------------------- ------------------------
----------------------- --------------------- ------------------------- ----------------- --------------------- ------------------- -------------------- ------------------- ------------------ ----------------------- ---------------- --------------------- -----------------
---------------------- ----------- ----------------- ----------- ----------------------- --------------------- --------------------- ---------------------- ----------------- ------------- ----------------- ------------------ ------------------- ----------------------
-------------------- -------------------- ------------------- ------------------ -------------- -----------------------
N N N Y N N N N N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N N
N N N N N N N N N fndaxz4n1gdsg N N N N
N N N N N N
SQL>
查询出来只有一条记录。
只有CHILD_ADDRESS, CHILD_NUMBER, ADDRESS这三个字段的值不一样。
SQL> SELECT distinct
2 ACL_MISMATCH, ANYDATA_TRANSFORMATION,
3 AUTH_CHECK_MISMATCH, BIND_MISMATCH, BIND_PEEKED_PQ_MISMATCH,
4 BIND_UACS_DIFF, BUFFERED_DML_MISMATCH, --CHILD_ADDRESS, CHILD_NUMBER, ADDRESS,
5 CROSSEDITION_TRIGGER_MISMATCH, CURSOR_PARTS_MISMATCH,
6 DESCRIBE_MISMATCH, DIFFERENT_LONG_LENGTH, DIFF_CALL_DURN,
7 EDITION_MISMATCH, EXPLAIN_PLAN_CURSOR, FLASHBACK_ARCHIVE_MISMATCH,
8 FLASHBACK_CURSOR, FLASHBACK_TABLE_MISMATCH, FORCE_HARD_PARSE,
9 INCOMPLETE_CURSOR, INCOMP_LTRL_MISMATCH, INST_DRTLD_MISMATCH,
10 INSUFF_PRIVS, INSUFF_PRIVS_REM, LANGUAGE_MISMATCH,
11 LITERAL_MISMATCH, LITREP_COMP_MISMATCH, LOAD_OPTIMIZER_STATS,
12 LOAD_RUNTIME_HEAP_FAILED, LOCK_USER_SCHEMA_FAILED, LOGICAL_STANDBY_APPLY,
13 LOGMINER_SESSION_MISMATCH, MULTI_PX_MISMATCH, MV_QUERY_GEN_MISMATCH,
14 MV_REWRITE_MISMATCH, MV_STALEOBJ_MISMATCH, NO_TRIGGER_MISMATCH,
15 OPTIMIZER_MISMATCH, OPTIMIZER_MODE_MISMATCH, OUTLINE_MISMATCH,
16 OVERLAP_TIME_MISMATCH, PDML_ENV_MISMATCH, PLSQL_CMP_SWITCHS_DIFF,
17 PLSQL_DEBUG, PQ_SLAVE_MISMATCH, PX_MISMATCH,
18 REMOTE_MAPPING_MISMATCH, REMOTE_TRANS_MISMATCH, ROLL_INVALID_MISMATCH,
19 ROW_LEVEL_SEC_MISMATCH, SLAVE_QC_MISMATCH, SQL_ID,
20 SQL_TYPE_MISMATCH, STATS_ROW_MISMATCH, STB_OBJECT_MISMATCH,
21 TOP_LEVEL_DDL_MISMATCH, TOP_LEVEL_RPI_CURSOR, TRANSLATION_MISMATCH,
22 TYPCHK_DEP_MISMATCH, TYPECHECK_MISMATCH, UNBOUND_CURSOR,
23 USER_BIND_PEEK_MISMATCH
24 FROM v$sql_shared_cursor
25 WHERE sql_id IN ('ayhn8kx4p011p');
ACL_MISMATCH ANYDATA_TRANSFORMATION AUTH_CHECK_MISMATCH BIND_MISMATCH BIND_PEEKED_PQ_MISMATCH BIND_UACS_DIFF BUFFERED_DML_MISMATCH CROSSEDITION_TRIGGER_MISMATCH CURSOR_PARTS_MISMATCH DESCRIBE_MISMATCH DIFFERENT_LONG_LENGTH DIFF_CALL_DURN EDITION_MISMATCH EXPLAIN_PLAN_CURSOR
FLASHBACK_ARCHIVE_MISMATCH FLASHBACK_CURSOR FLASHBACK_TABLE_MISMATCH FORCE_HARD_PARSE INCOMPLETE_CURSOR INCOMP_LTRL_MISMATCH INST_DRTLD_MISMATCH INSUFF_PRIVS INSUFF_PRIVS_REM LANGUAGE_MISMATCH LITERAL_MISMATCH LITREP_COMP_MISMATCH LOAD_OPTIMIZER_STATS LOAD_RUNTIME_HEAP_FAILED
LOCK_USER_SCHEMA_FAILED LOGICAL_STANDBY_APPLY LOGMINER_SESSION_MISMATCH MULTI_PX_MISMATCH MV_QUERY_GEN_MISMATCH MV_REWRITE_MISMATCH MV_STALEOBJ_MISMATCH NO_TRIGGER_MISMATCH OPTIMIZER_MISMATCH OPTIMIZER_MODE_MISMATCH OUTLINE_MISMATCH OVERLAP_TIME_MISMATCH PDML_ENV_MISMATCH
PLSQL_CMP_SWITCHS_DIFF PLSQL_DEBUG PQ_SLAVE_MISMATCH PX_MISMATCH REMOTE_MAPPING_MISMATCH REMOTE_TRANS_MISMATCH ROLL_INVALID_MISMATCH ROW_LEVEL_SEC_MISMATCH SLAVE_QC_MISMATCH SQL_ID SQL_TYPE_MISMATCH STATS_ROW_MISMATCH STB_OBJECT_MISMATCH TOP_LEVEL_DDL_MISMATCH
TOP_LEVEL_RPI_CURSOR TRANSLATION_MISMATCH TYPCHK_DEP_MISMATCH TYPECHECK_MISMATCH UNBOUND_CURSOR USER_BIND_PEEK_MISMATCH
------------ ---------------------- ------------------- ------------- ----------------------- -------------- --------------------- ----------------------------- --------------------- ----------------- --------------------- -------------- ---------------- -------------------
-------------------------- ---------------- ------------------------ ---------------- ----------------- -------------------- ------------------- ------------ ---------------- ----------------- ---------------- -------------------- -------------------- ------------------------
----------------------- --------------------- ------------------------- ----------------- --------------------- ------------------- -------------------- ------------------- ------------------ ----------------------- ---------------- --------------------- -----------------
---------------------- ----------- ----------------- ----------- ----------------------- --------------------- --------------------- ---------------------- ----------------- ------------- ----------------- ------------------ ------------------- ----------------------
-------------------- -------------------- ------------------- ------------------ -------------- -----------------------
N N N Y N N N N N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
N N N Y N N N N N N N N N N
N N N N N N N N N N N N Y N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
N N N N N N N N N N N N N N
N N N N N N N N N N N N Y N
N N N N N N N N N N N N N
N N N N N N N N N ayhn8kx4p011p N N N N
N N N N N N
SQL>
查询出来只有三条记录。
SQL> SELECT sql_id, count(1)
2 FROM v$sql_shared_cursor
3 WHERE sql_id IN ('fndaxz4n1gdsg', 'ayhn8kx4p011p')
4 group by sql_id
5 ;
SQL_ID COUNT(1)
------------- ----------
ayhn8kx4p011p 658
fndaxz4n1gdsg 201
SQL>
没有发现什么不同却产生了太多的Version Count。
相关文章推荐
- SQL重复记录查询-count与group by having结合查询重复记录
- linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符) (转帖)
- How to Interpret the "SQL ordered by Physical Reads (UnOptimized)" Section in AWR (文档 ID 1466035.1)
- SQL group by & count
- SQL中几个简单的函数:LEFT JOIN;COUNT遇上GROUP BY
- 用SQL生成awr报表中的“SQL ordered by Elapsed Time” 部分
- Oracle 通过AWR的SQL ordered by Gets和SQL ordered by Reads诊断问题
- spark-sql之 Caused by: MetaException(message:Version information not found in metastore. )
- 处理分页的数据函数GetlistByPage(strSQL, PageSize, PageNo, PageCount, arrList)
- SqlZoo.net习题答案:Using SUM, COUNT, MAX, AVG, DISTINCT and ORDER BY.
- 用SQL生成awr报表中的“SQL ordered by Elapsed Time” 部分
- SQL version count
- sql语句count 与与group By
- SQL GROUP BY 无记录 COUNT
- Caused by: java.sql.SQLException: Column count doesn't match value count at row 1
- SQL ordered by Reads(源码)
- 每天努力一点之SQL(二) count sum case when then group by
- vBulletin version 4.0.1 remote SQL injection exploit
- 解决macOS下mysql的sql_mode=only_full_group_by问题
- 14.5.3 Locks Set by Different SQL Statements in InnoDB