1 其实parse_call的过程是再获取游标的过程
2 一旦游标被cache到pga,无须再重新获取,自然是不用re-parse了 这既是软软解析了
3 而这游标是否在pga里共享,都会在v$open_cursor视图里展现的
4 隐士和显示游标我还没有理
我确信 你这个是软软解析
父游标文本 已然是第一次硬了,后2次cache 后 不用再重新获取游标,而是从cache中重用即可
再者,每个值按照邦德来处理,所以我确信邦德没有pink,你的执行计划就在第一次执行时已然确定,并在
随后的2次执行反复重用的就是这个执行计划,所以你的后两次是软软解析,无需再重新获取游标,即使硬的被记录展现到v¥sql的parse call中的1,而不是3,但此时图中字段excuse执行去记录为3的缘故
2 一旦游标被cache到pga,无须再重新获取,自然是不用re-parse了 这既是软软解析了
3 而这游标是否在pga里共享,都会在v$open_cursor视图里展现的
4 隐士和显示游标我还没有理
我确信 你这个是软软解析
父游标文本 已然是第一次硬了,后2次cache 后 不用再重新获取游标,而是从cache中重用即可
再者,每个值按照邦德来处理,所以我确信邦德没有pink,你的执行计划就在第一次执行时已然确定,并在
随后的2次执行反复重用的就是这个执行计划,所以你的后两次是软软解析,无需再重新获取游标,即使硬的被记录展现到v¥sql的parse call中的1,而不是3,但此时图中字段excuse执行去记录为3的缘故
=============
declare
v_name varchar2(10);
cursor x is select last_name from employees;
i number(10);
begin
open x;
for i in 1..3 loop
fetch x into v_name;
delete employees where last_name=v_name;
end loop;
close x;
end;
然后看了下PARSE_CALLS 这个字段,以前我的理解是软硬解析之和。如果这个这里应该是3,但是是1
SQL> select SQL_TEXT,PARSE_CALLS,EXECUTIONS from v$sql where SQL_ID='49s3t6bm6yfj9';
SQL_TEXT PARSE_CALLS EXECUTIONS
-------------------------------------------------------------------------------- ----------- ----------
DELETE EMPLOYEES WHERE LAST_NAME=:B1 1 3
难道这里是硬解析?或者是我的语句是软软解析?怎么查看我这个 SQL是否进行了软软解析 v$open_cursor ?
v_name varchar2(10);
cursor x is select last_name from employees;
i number(10);
begin
open x;
for i in 1..3 loop
fetch x into v_name;
delete employees where last_name=v_name;
end loop;
close x;
end;
然后看了下PARSE_CALLS 这个字段,以前我的理解是软硬解析之和。如果这个这里应该是3,但是是1
SQL> select SQL_TEXT,PARSE_CALLS,EXECUTIONS from v$sql where SQL_ID='49s3t6bm6yfj9';
SQL_TEXT PARSE_CALLS EXECUTIONS
-------------------------------------------------------------------------------- ----------- ----------
DELETE EMPLOYEES WHERE LAST_NAME=:B1 1 3
难道这里是硬解析?或者是我的语句是软软解析?怎么查看我这个 SQL是否进行了软软解析 v$open_cursor ?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13750068/viewspace-731427/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13750068/viewspace-731427/