2006年9月18日星期一

oracle关于锁问题的一个bug

关于oracle锁问题的阐述,有两篇文章非常值得一看:
1、Oracle多粒度封锁机制研究
2、DB2和 Oracle的并发控制(锁)比较.

我最近遇到的问题是:
selelct ... for update 获得的是 row exclusive lock,按照官方文档因该获得row share
(测试的版本是oracle 9.2.0.8,winxp,row_locking 等于always)

后经过证实这是oracle的一个bug:4115353,是在修复bug:3646162时引入的,这个问题困惑了我好几天,特记录在此备忘。

2006年9月13日星期三

(20060913)今日学习

1、join methods
2、Positional Versus Named Notation for Subprogram Parameters 及其限制 (官方);
(只是针对函数,sqlplus中用execute执行存储过程可以使用Named Notation.)
3、dbms_plan工具的用法:
(1) itpub: 使用dbms_xplan工具查看执行计划;
(2) eygle: Oracle10gR2 autotrace function was changed and enhanced ;
(3) builder.com.cn: 用Oracle的 DBMS_XPLAN函数轻松格式化EXPLAIN PLAN结果

关于oracle7的一点资料

这一周多时间研究了一下oracle7,发现oracle从7到8、8i、9i、10g,在内存管理、存储等等方面确实发生了很大的变化;我开始接触oracle是在99年,8.0.4的版本,买的盗版光盘,装在windowns上,打开sqlplus,就是进不去,不知道用户名和密码,真是着急啊!相信不少人有同样的经历,当我知道oracle安装后有两个默认的用户(system/manager、sys/change_on_install)的时候,oracle才向我敞开了大门。
因为oracle7的版本实在是有点老了,找到安装的介质颇费了一番周折,我把相关的url列在下面:
1、oracle734 personal for winnt
2、oracle734 server from sco unix
3、sco unix 5.0.7
4、oracle734 for sco unix安装文档

关于安装我就不详细写了,网上有很多现成的文档,我在windows 2000/xp、sco unix 5.0.7 (on vmware)上都安装成功了,需要说明的是在windows 2000/xp上安装oracle7需要先安装Oracle Installer v. 3.3.1.1.0C,然后再用这个版本的Installer安装oracle7.

可以在metalink上下载Oracle Installer v. 3.3.1.1.0C (patch 826393).