幸せのちから

平凡的世界
看似平常实崎岖
成如容易却艰辛

1z0-052学习笔记(7)

第16章 锁竞合的检出以及解决方案
1.DML锁
行锁(排他)
表锁(共有)
2.DML共有表所,竞合DDL防止
3.手动行锁
SELECT ... FOR UPDATE NOWAIT | WAIT 数秒
4.手动表锁
LOCK TABLE 表名 IN 锁定模式名 MODE [NOWAIT]
ROW SHARE:SELECT...FOR UPDATE;
ROW EXCLUSIVE:DML(INSERT,UPDATE,DELETE)
EXCLUSIVE:DDL
エンキューメカニズム
5.锁竞合发生的场合:
变更没有提交
事务长时间的场合
不必要的高锁级别
6.死锁
如果检出死锁,Oracle服务器会自动回滚解决死锁。
死锁发生的时候,警告日志(BACKGROUND_DUMP_DEST初始化参数),警告日志记录的
用户trece文件(USER_DUMP_DEST初期化参数指定)
7.死锁的详细情报,USER_DUMP_DEST初始化参数指定的目录文件里确认。
8.V$LOCK视图,V$LOCKED_OBJECT视图
9.ALTER SYSTEM KILL SESSION 'SID列值,SERIAL#列值'

第17章 性能监视
1.性能问题对应
数据字典视图:领域相关
动态性能视图(V$DATABASE,V$INSTANCE):内存使用量,待机时间按,实例的活动
2.个别的matric情报页面包含
  最新已知值
平均值
上限值,下限值
3.EM中性能页的内容
host
session:待机和实行中
实例
4.如果REDO日志buffer待机时间多发的情况下
把REDO日志文件配置在能够高速操作的硬盘上
REDO日志buffer小的话,增加 大小
5.数据文件的硬盘I/O集中的话可以考虑下面的方法
RAID
ASM
6.表优化统计DBA_TABLES
NUM_ROWS:表保存的行数
BLOCKS;行保存的block数
AVG_ROW_LEN:平均行长度
LAST_ANALYZED:最后分析的日时
NUM_FREELIST_BLOCKS:空list里面的块数
CHAIN_CNT:移行连锁的行数
7.索引的统计
BLEVEL:
LEAF_BLOCKS:
DISTINCT_KEYS:
AVG_LEAF_BLOCKS_PER_KEY:
AVG_DATA_BLOCKS_PER_KEYS:
CLUSTERING_FACTOR
NuM_ROWS
8.优化统计相关
优化统计在收集时也是变化的
Oracle服务器再启动也不变化
   表中行数据频繁更新的话,应该考虑手动来进行统计分析
    对于大规模表,进行预算的统计收集更适合
     使用DBMS_STATS包进行统计收集
9. 无效对象的troubleshooting
  PL/SQL对象的有效性可以通过数据字典DBA_OBJECT视图的STATUS列来确认
无效的PL/SQL再编译
下回需要运行PL/SQL时自动编译
使用ALTER .. COMPILE来手动编译
ALTER FUNCTION 函数名 COMPILE
ALTER PROCEDURE 存储过程名COMPILE
9.索引的再构筑
如果使用ALTER TABLE...MOVE命令,索引将无效,这是因为ROWID发生改变。可以查看数据字典的DBA_INDEXES视图的STATUS列
来确认。
再构筑
ALTER INDEX 索引名 REBUILD [ONLINE] [TABLESPACE 表领域名]
如果使用ONLINE再构筑中DML可能。
再构筑中需要2倍的领域。

posted on 2009-03-22 23:13 Lucky 阅读(175) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

随笔分类(125)

文章分类(5)

日本語

搜索

积分与排名

最新随笔

最新评论