|
蓝森林 http://www.lslnet.com 2006年7月08日 11:08
[求助 ?] sybase lock
sybase 中设置了三种锁级别:
1. row-level lock
2. page-level lock
3. table-level lock
三钟锁类型:
1. shared lock
2. exclusive lock
3. update lock (个人觉得和排它锁没有什么大区别)
三种锁方案:
1. allpages 全页锁,use table-level lock and page-level lock
2. datapages 数据页锁,use table-level lock and page-level lock
3. datarows 数据行锁,use table-level lock and row-level lock
在建表的时候使用锁方案
create table table_name (
column_name datatype [ NULL | NOT NULL | IDENTITY ] ,
...
column_name datatype [ NULL | NOT NULL | IDENTITY ] )
[ lock { allpages | datapages | datarows } ]
问题在于:如果使用数据行锁,我怎么知道该表的锁级别是表级锁还是行锁?? 因为锁方案 datarows的锁方案可以是表级锁也可以是行锁。 可以通过sp_help table-name 来察看改表的锁方案 sp_configure "lock scheme" 察看和改变默认锁方案
为什么要设置这么一个锁方案,有锁级别和锁类型不就可以了嘛,比如:象informix
create table table_name (
column_name datatype [ NULL | NOT NULL | IDENTITY ] ,
...
column_name datatype [ NULL | NOT NULL | IDENTITY ] )
set page lock mode ; (设置行锁)
当做select 时自动加上共享锁,update 和 delete 表时加上排它锁,这样也可以控制啊,而且表实用的是什么机别的锁可以设置
为什么要设置这么一个迷糊的锁方案???? |
1.as I known,lock granularity of table can be set explicitily by create table ....lock allpages[datapages|datarows] or alter table ..... lock allpages[datapages|datarows]. if you omit setting table lock granularity,it will come from "lock sheme" you mentioned.
2.what means "而且表实用的是什么机别的锁可以设置".I am not clear what you said.could you give more explaination for that?
3.I guess inspiration of sybase engineers came from their dreams.hehe |
看看精华贴.
http://www.lslnet.com/linux/#viewthread.php?tid=15725&extra=page%3D5%26filter%3Ddigest&page=1 |
”而且表实用的是什么机别的锁可以设置 ” ,写错了,是想说:informix表要用什么机别的锁是可以设置的,很方便 不明白sybase为什么搞的这么罗嗦 |
| |