课程目标

  完成本课程的学习后,您应该能够:

  •变量绑定的目的
  •父子游标
  •游标共享
  •绑定窥探
  •SQL语句处理流程
  •硬解析、软解析、软软解析
  •变量绑定的应用场景
 
1。游标
  游标可以理解为SQL语句的一个句柄,也叫SQL语句的指针,游标指向一条SQL语句,oracle会话要执行一条SQL时,首先要打开游标。
1.1父子游标:
  同样的SQL,因某些其它的差异,会产生另外的cursor。解析操作的结果是将一个父游标与子游标保存到库缓存中。很显然,将它们保存到共享内存的目的是为了重用它们,从而避免硬解析。
  父游标 parent cursor ---第一条运行的SQL。
  子游标 child cursor ---后续运行的SQL 。
  父游标的关键信息是SQL语句的文本。
  子游标的关键是执行计划和执行环境。
实验:
sqlplus test/test
drop table t_cursor purge;
create table t_cursor as select * from dba_objects;
alter system flush shared_pool;
创建实验的表
select count(*) from t_cursor;
select count(*) from T_cursor;
col sql_text format a40;
select sql_id, sql_text, executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';
alter system flush shared_pool;
select sql_id, sql_text, executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';
不共享游标的情况
select count(*) from t_cursor;
select count(*) from t_cursor;
select sql_id, sql_text, executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';
alter system flush shared_pool;
共享游标的情况
--父子游标
alter session set optimizer_mode = all_rows;
select count(*) from t_cursor;
select sql_id, sql_text,child_number,executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';
alter session set optimizer_mode = first_rows_10;
select count(*) from t_cursor;
select sql_id, sql_text,child_number,executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';

grant select any dictionary to scott;

sqlplus scott/tiger
drop table t_cursor purge;
create table t_cursor as select * from user_objects;
col sql_text format a40;
select count(*) from t_cursor;
select sql_id, sql_text,child_number, executions from v$sql
 where sql_text like '%select count(*) from%_cursor%'
   and sql_text not like '%sql_text%';
父子游标

相关文章:

  • 2021-09-13
  • 2021-11-29
  • 2021-12-24
  • 2021-06-22
  • 2022-02-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2021-08-07
  • 2021-06-06
相关资源
相似解决方案