- iostate,netstate概念用途
- free buffer waits ,buffer busy waits 产生原因
free buffer waits :
◆ 低效率的SQL语句
在v$SQL视图中查找执行许多物理读取(DISK_READS)的语句。这些语句可能正在执行全表
扫描,或者通过为选择的索引访问表。调整这些语句以降低物理读取的需求。
◆ 不充足的DBWR进程
SELECT Set_Id, Dbwr_Num FROM X$kcbwds ORDER BY Set_Id;
◆ 缓慢的IO子系统
如果db file parallel write等待事件的平均等待时间教高,它就可以对前台产生负面
影响,造成在free buffer waits事件上等待。
◆ 延迟的块清除
◆ 较小的缓冲区存储器
如果缓冲存储器因为过小而无法处理空闲缓冲区的要求,进程就可能经历free buffer waits
争用。
buffer busy waits :由于多个写请求修改同一个数据块内的数据导致
- physical reads,db blocks gets ,consistent gets
db block gets: 获取数据的当前映像所读取的数据块。
Oracle为了获取数据的当前映像,会先去数据缓存(Data cache)中找,如果有就直接读取(逻辑读),如果没有再去数据文件中读取(物理读)。consistent gets: 获取数据的读一致性映像所读取的数据块。
应该仅发生在用户查询时该数据块正在被修改的情况下,则数据的前映像在回滚段中,Oracle为了获取一致性映像,必须从回滚段中读取(物理读)。
physical reads: 所有物理读的总数。
从而: db block gets + consistent gets 就是所有读取操作涉及的数据块
则物理读在所有读操作中所占的比例就是:
physical reads/(db block gets + consistent gets)
数据高速缓存的命中率就应该是:
Hit Ratio = 1 – (physical reads/(db block gets + consistent gets))
- commit 触发哪些进程 是否触发DBWN
- SP捕获指定异常
declare
...
begin
v_str := 'as;ldfjasldkfjaslkdfj';
begin
execute immediate v_str;
exception
when others then
if sqlcode = ... then
sald;fjalskdjfalskj;
end if;
end;
end;
- 分区表基本类型
范围分区、散列分区、列表分区、组合分区
- 位图索引 优缺点
- 段分几种