- SQL*Plus: Release 11.2.0.1.0 Production on 星期四 5月 27 14:40:51 2010
- Copyright (c) 1982, 2010, Oracle.All rights reserved.
- SQL> conn test/test
- 已连接。
- SQL> select t.PARSE_CALLS,t.EXECUTIONS from v$sql t where t.SQL_TEXT='select 1 from dual';
- 未选定行
- SQL> declare
- 2 i pls_integer;
- 3 nCur pls_integer;
- 4begin
- 5 nCur := dbms_sql.open_cursor;
- 6
- 7 for i in 0..10000 loop
- 8 dbms_sql.parse(nCur,'select 1 from dual',dbms_sql.native);
- 9 end loop;
- 10
- 11 dbms_sql.close_cursor(nCur);
- 12end;
- 13/
- PL/SQL 过程已成功完成。
- SQL> select t.PARSE_CALLS,t.EXECUTIONS from v$sql t where t.SQL_TEXT='select 1 from dual';
- PARSE_CALLS EXECUTIONS
- ----------- ----------
- 20002 0
通常是某些database driver的奇异功能导致的,比如它需要通过parse某个SQL来获取数据表结构的描述或者其它的一些什么信息,这种情况下就是只有parse而没有execute,并且parse值极高。
通常是ODBC,通常SQL Module是w3wp.exe,如果你也是,恭喜你

本文详细介绍了使用SQL*Plus进行SQL语句解析与执行的性能测试,通过创建大量解析调用并关闭游标,观察到解析次数显著增加,而实际执行次数较少。这一现象通常与特定数据库驱动程序的功能有关,如ODBC,可能用于获取数据表结构描述或其他信息。测试结果表明,在某些情况下,解析操作可能会导致解析次数极高,但执行次数较少。
1074

被折叠的 条评论
为什么被折叠?



