3、行锁 (row lock) 对某行数据加锁
好像一个lock占用的内存为120byte!
锁只是一种保护机制,并不影响数据存储!
提问:
如何缓解系统表上的资源争用,尤其是tempdb系统表上的锁争用.有实际处理经验吗?
回复:
tempdb系统表的锁竞争确实比较难解决,根本上还是要从应用设计开发上解决。也就是临时表的使用要适度,也可以考虑建一些共享的临时表,这样不需要频繁地创建和删除临时表。
另外的意见:
全页锁(allpages lock) 若使用了正确的索引,只对查询的数据页及索引页加锁。另外,DOL(data only lock table)表的聚集索引的插入同allpages表的非聚集索引一样,并不是实时更新聚集索引。故若使用表DOL表应注意索引的维护。
我的亲身经历及建议:
在我做的一个项目中有几个关键表因为对并发的要求比较高,所以,采用了DOL表,但是sybase数据库使用行级锁需要注意一些问题,比如索引更新及碎片整理的问题,若你的DOL表需要频繁的update变长字段和insert或delete记录,那么久而久之,你的表将会出现很多碎片索引信息也将可能出现部分失效,这时你需要更新索引信息(update statistics tablename)或重整DOL表(reorg REBUILD tablename)!当然,为了减少碎片增长速度可以在表设计或修改中增加exp_row_size 项的设置。






