解析的观察
v$sesstat
Name Null? Type
----------------------------------------- -------- ----------------------------
SID NUMBER
STATISTIC# NUMBER
VALUE NUMBER
v$statname
Name Null? Type
----------------------------------------- -------- ----------------------------
STATISTIC# NUMBER
NAME VARCHAR2(64)
CLASS NUMBER
STAT_ID NUMBER
关注两个列:名字和编号
select name ,statistic# from v$statname where name like ‘%parse%’;
NAME
----------------------------------------------------------------
parse time cpu
parse time elapsed
parse count (total)
parse count (hard)
parse count (failures)
select name ,statistic# from v$statname where name in(‘parse count (total)’, ’ parse count (hard));
select name ,statistic# from v$statname where name in('parse count (total)','parse count (hard));
select name ,statistic# from v$statname where name in('parse count (total)','parse count (hard)');
select sid from v$mystat where rownum=1;
select * from v$sesstat where sid=33;
select count(*)from v$sesstat where sid=2;
select * form v$sesstat where sid=269 and statistic in(330,331);
将两个表连接起来。或者说将两表拼接起来。
select a.name,b.value form v$statname a,v$sesstat b where a.satistic#=bstatistic#;然后添加条件限制显示的结果
语句自身也在观测之内
递归调用时,硬解析会带来很多的软解析。
包
包是一组相关过程、函数、变量、常量、和游标等pl/sql程序设计元素的组合。
包定义 包主体
user_source,all_source,dba_source;在这一系列视图可以看到
包定义
create or replace package packagename
declare
end package;
create or replace body package
as/is
begin
pl/sql
end;
create package demo
is
deptrec dept%rowtype
vsqlcode number;
sqler varchar(20);
function adddept(
deptno number ,deptname varchar2,loaction varchar2)return number;
procedure querydept(deptno in number);
end demo;
用show err来查看错误 】
包里的变量相当于会话级别的变量,什么时候都可以用。
如果换行的话哦、,用exec、是不能用的。必须放在begin 和end的无名块中
包变量在PGA中,每个连接都有一份,直到连接退出时释放。