数据库事务和锁(四)

本文详细介绍了SQL Server中的锁机制,包括行级锁、页级锁、簇级锁、表级锁和数据库级锁,以及不同锁的兼容性和用途。通过理解这些锁的原理,可以优化并发控制,提高系统性能。
摘要由CSDN通过智能技术生成

空间管理

    锁是防止其他事务访问指定的资源控制、实现并发控制的一种主要手段。为了提高系统的性能,加快事务的处理速度,缩短事务的等待时间,应该使锁定的资源最小化。为了控制锁定的资源,应该首先了解系统的空间管理。在SQL Server系统中,最小的空间管理单位是页,一个页有8K。所有的数据、日志、索引都存放在页上。另外,使用页有一个限制,这就是表中的一行数据必须在同一个页上,不能跨页。页上面的空间管理单位是簇,一个簇是8个连续的页。表和索引的最小占用单位是簇。数据库是由一个或者多个表或者索引组成,即是由多个簇组成。SQL Server系统的空间管理结构示意图如图3所示。

图3  SQL Server空间管理

可以锁定的资源

为了优化系统的并发性,应该根据事务的大小和系统活动的程度,锁定不同的资源。也就是说,既可以锁定比较大的资源,也可以锁定比较小的资源。在SQL Server系统中,已经比较完善地实现了这些要求。在SQL Server 7.0中,可以锁定的资源有多种,这些可以锁定的资源分别是行、页、簇、表和数据库,他们对应的锁分别是行级锁、页级锁、簇级锁、表级锁和数据库级锁。在如图4所示的结构中,数据行存放在页上,页存放在簇上,一个表有若干个簇组成,而若干个表组成了数据库。在这些可以锁定的资源中,最基本的资源是行、页和表,而簇和数据库是特殊的可以锁定的资源。

图4  表、页、行的结构图

    行是可以锁定的最小空间。在SQL Server 7.0中,实现了行级锁。行级锁就是指事务在操纵数据的过程中,锁定一行或者若干行数据,其他事务不能同时处理这些行的数据。行级锁占用的数据资源最少,所以在事务的处理过程中,允许其他事务继续操纵同一个表或者同一个页的其他数据,大大降低了其他事务等待处理的时间,提高了系统的并发性。页级锁是一种最优锁,因为行级锁不可能出现数据既被占用又没有使用的浪费现象。在图5中,椭圆形表示行级锁占用的数据,而椭圆形之外的其他数据仍然可以由其他事务使用。行级锁是SQL Serv

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值