Multiuser Databases

  • 设想这么一个情况,你作为管理者,正在生成一个租赁情况的报告,与此同时
    • 一位用户归还了之前租赁的电影
    • 一位用户租走了另外的一部电影
    • 店铺新引进了几部新电影
  • 这个时候就会引起一定的问题,因此,需要引入locking机制

Locking

  • 两类locking
Type desc Cons
当需要修改数据库内容时,写入者必须发出write lock的请求,且阅读数据库信息的用户也必须发出和接受read lock的请求,多个用户可以同时读取数据,但是,对单个表格的write lock只能派发给一个用户,而且,在write lock解除前,其他用户无法读取该表格 当同时有多个用户发出修改和阅读申请时,会需要等待很久
versioning 当需要修改数据库内容时,写入者必须发出write lock的请求,而读者并不需要发任何形式 lock 而SQL Server可以保证读者会看到一个相对固定的数据(不会随着其他用户的修改而变化),从query开始到query结束 当query运行时间较长时,数据可能会被修改
  • Lock Granularities
Type Desc
Table locks 防止多个用户同时修改同一个table
Page locks 防止多个用户同时修改table里同一个page内的信息
Row locks 防止多个用户用户同事修改table中的同一行

results matching ""

    No results matching ""