Database 版 (精华区)
发信人: mm (绿色的梦), 信区: Database
标 题: 数据库技术讲座(七)-----并发处理(4)
发信站: 紫丁香 (Sat Oct 25 18:51:34 1997)
2 表级锁
表级锁有以下所示的三类:
* INTENT:当表中存在页级的排它锁和共享锁时,在表上加意向锁。
在所有的页级锁释放后,意向锁随着释放。
* SHARED:在读操作时加共享锁。在缺省状态下,在读操作完成后
释放共享锁。
* EXCLUSIVE:在更新操作时加排它锁。在缺省状态下,在事务完成
后释放排它锁。
3 请求锁
请求锁用以防止共享锁一个接一个无休止地加在表上,从而写事务(
要加排它锁)无法进行。
4 SYBASE的封锁级别
在SYBASE根据ANSI标准定义事务的封锁级别:
(1) 级别1:脏读
(2) 级别2:不可重复读
(3) 光标带来的当前值混乱
SYBASE的缺省一致性级别为1。如果要达到一致性级别2和3,必须使用
HOLDLOCK关键字把共享锁持续到事务的结束。方法如下:
SELECT * FROM AUTHS HOLDLOCK
WHERE AUTHOR_CODE='A00001'
SYBASE还可以通过T-SQL的SET命令改变SYBASE的一致性级别,从而使
SYBASE自动在SELECT语句中加HOLDLOCK关键字:
SET TRANSACTION ISOLATION LEVEL 3
5 在SYBASE中提高并发效率的方法
* 避免在表中特定的页上多个用户过多的封锁。
* 避免在人机交互的应用中定义事务,这样会使某个用户长时间封锁
住表(如去接电话),使其他用户持续等待。
* 使事务尽量的短。
* 仅当必要时才使用HOLDLOCK关键字。
* 在事务中封锁表的次序应该一致,这样可避免死锁。
--
_/ _/ _/ _/
_/_/ _/_/ _/_/ _/_/
_/ _/ _/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: space.hit.edu.c]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.530毫秒