Oracle数据库编写有效事务指导方针
2009-01-15 13:09:55 来源:WEB开发网所以,在事务中要尽量使得访问的记录量最小。如此就可以减少锁定的行数,从而减少事务之间的冲突。这要求数据库管理员在事务中尽量精确的定位语纪录。如在数据库中读取记录时,最好能够使用Where语句进行定位。并且在编写Where语句的时候,要尽量的详细,最好能够实现一对一,则是最好的。
如在库存盘点的时候,事务处理语句需要从数据库中读取一定数量的记录,并且为这些记录进行加锁。此时,若记录读取的过多的话,就会对其他用户访问表中的记录造成麻烦。为此,数据库管理员应该建议应用前台应用程序在开发的过程中,加入一些限制条件。如按照产品的分类来更新库存。如此的话,就可以减少一个事务一次性读取的记录数量,从而把锁的影响降低到最低。
指导方针二:保持事务尽可能的简洁。
在事务中尽量使得访问的纪录最小,这是从数量的角度来考虑锁冲突。而保持事务尽可能的简洁,则是从时间的角度来考虑避免锁冲突的事情。保持事务尽可能的简洁,主要是要求数据库管理员在编写事务的时候,不要把事务写的太过于庞大与复杂。否则,事务在执行的时候就会占用比较多的时间。而这直接导致的后果就是数据库会把某些记录、甚至一张数据表锁住比较长的时间。这就会恶化锁对数据库的负面影响。
故当用户在知道了必须要进行修改的记录之后,就要马上启动事务;并且在最短时间内执行完相关的修改语句,然后立即递交或者回滚。而且,只有在确实需要时,才打开事务语句。具体的来说,数据库管理员在事务的简洁性方面,可以尝试如下方法。
一是在同一个事务中不要加入过多的修改或者删除语句。如当用户需要更新用户信息表中的相关数据。例如在员工的编号前加入YG前缀并且同时根据员工入职年份计算员工工龄。这两个更新语句若从技术上来说,放在同一个事务中并没有什么不妥。但是,当员工数量比较多时,若把他们合并在一起,则这个事务执行得时间会比较久。为此,最好在更新数据库表的时候,若预计执行时间会比较长,则最好能够把更新语句进行分割,如一列列更新等等。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接