共享数据的锁定(订单系统)

(方式一 :)     独占模式:阻止其他所有用户访问数据库,这是限制最大的模式,上一节已介绍过。
(方式二 :)     记录集锁定:即锁定Recordset对象的基本表,用读表锁定、写表锁定或两者都用。
(方式三 :)     页面锁定:锁定含有正在编辑的数据的页面,其长度为2048个字节(2K), 这是限制最小的模式。

在应用程序中用哪一种模式来锁定对象,主要看所需要的并发级别。

例如:

如果想使对象在任何时候都可用,则可使用页面锁定,因为它是限制最小的级别。

如果应用程序要保证数据库中的大多数或所有数据都可访问,则应选择独占模式,这种模式确保应用程序独占数据库的访问。

注意,这三种级别可以结合使用。

例如,假定有一个订单系统,则可以用页面锁定来控制订单表的锁定,使订单接收者之间的并发程度最高。

在一天结束时用记录集锁定来锁定汇总表,这个汇总表要用汇总数据来更新。

最后,可以在夜间使用独占模式来整理数据库。

1.共享模式与独占模式

如前所述,独占模式是打开数据库限制最大的方式,它阻止其他所有用户打开该数据库。这种模式常用于数据库管理或数据库的批量修改,例如修复或整理操作以及改变数据库的结构等。

在单用户环境中访问数据库时,通常以独占模式打开数据库,这可以提供更好的性能,因为不必对对象进行锁定和解锁,也不必刷新高速缓存器。

但是,当在多用户环境中使用应用程序时,通常以共享模式打开数据库。

(1).以共享模式打开数据库

为了实现记录集锁定,必须以共享模式打开数据库。当以共享模式打开数据库时,可能会有多个用户同时对数据库进行访问,在这种情况下,Microsoft Jet将处理各用户间试图编辑相同记录的冲突。


(2).使用只读模式

只读模式是共享模式的特殊形式。当以只读模式打开一个数据库时,不能改变数据库的数据或对象。但是,其他用户可以改变数据,不要把这种模式与在操作系统级以只读模式打开文件相混淆。


注意,以只读模式打开数据库时,并不禁止共享表类型的锁定或读锁定;因此,以只读模式打开数据库不能防止锁定冲突的发生。

限制程序为只读方式的另一种办法是为记录集使用快照,快照类型的记录集总是只读的。当基表中的数据不需要经常修改时,可以使用快照。

由于快照存放在内存中,因此其操作比使用表或动态集的相同操作速度要快。

但是,由于快照的内存需求和装入内存时要花费一定的时间,最好把快照用于返回记录在200以内的查询中。   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值