论坛登陆 注册 文章专区 投稿文章 旧版浏览
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 软件应用 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 网络文学 | 论坛社区 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Mssql>>正文

数据库中的锁

2005-11-16 6:49:48  作者:不详 来源:网络转载
数据库中的锁:

11.5.1 锁的概念
锁(Lock) 是在多用户环境下对资源访问的一种限制。机制当对一个数据源加锁后,此数据源就有了一定的访问限制。我们就称对此数据源进行了“锁定”。在SQL Server中,可以对以下的对象进行锁定:

  • 数据行(Row):数据页中的单行数据;
  • 索引行(Key):索引页中的单行数据,即索引的键值;
  • 页(Page):页是SQL Server 存取数据的基本单位,其大小为8KB;
  • 盘区(Extent):一个盘区由8 个连续的页组成;
  • 表(Table);
  • 数据库(Database)。

11.5.2 锁的类别
在SQL Server 中,锁有两种分类方法。
(1) 从数据库系统的角度来看
锁分为以下三种类型:

  • 独占锁(Exclusive Lock)
    独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或DELETE 命令时,SQL Server 会自动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。独占锁一直到事务结束才能被释放。
  • 共享锁(Shared Lock)
    共享锁锁定的资源可以被其它用户读取,但其它用户不能修改它。在SELECT 命令执行时,SQL Server 通常会对对象进行共享锁锁定。通常加共享锁的数据页被读取完毕后,共享锁就会立即被释放。
  • 更新锁(Update Lock)
    更新锁是为了防止死锁而设立的。当SQL Server 准备更新数据时,它首先对数据对象作更新锁锁定,这样数据将不能被修改,但可以读取。等到SQL Server 确定要进行更新数据操作时,它会自动将更新锁换为独占锁。但当对象上有其它锁存在时,无法对其作更新锁锁定。

(2)从程序员的角度看
锁分为以下两种类型:

  • 乐观锁(Optimistic Lock)
    乐观锁假定在处理数据时,不需要在应用程序的代码中做任何事情就可以直接在记录上加锁、即完全依靠数据库来管理锁的工作。一般情况下,当执行事务处理时SQL Server会自动对事务处理范围内更新到的表做锁定。
  • 悲观锁(Pessimistic Lock)
    悲观锁对数据库系统的自动管理不感冒,需要程序员直接管理数据或对象上的加锁处理,并负责获取、共享和放弃正在使用的数据上的任何锁。

11.5.3 隔离级别
隔离(Isolation) 是计算机安全学中的一种概念,其本质上是一种封锁机制。它是指 自动数据处理系统中的用户和资源的相关牵制关系,也就是用户和进程彼此分开,且和操 作系统的保护控制也分开来。在SQL Server 中,隔离级(Isolation Level) 是指一个事务 和其它事务的隔离程度,即指定了数据库如何保护(锁定)那些当前正在被其它用户或服 务器请求使用的数据。指定事务的隔离级与在SELECT 语句中使用锁定选项来控制锁定 方式具有相同的效果。
在SQL Server 中有以下四种隔离级:

  • READ COMMITTED
    在此隔离级下,SELECT 命令不会返回尚未提交(Committed) 的数据,也不能返回脏数据。它是SQL Server 默认的隔离级。
  • READ UNCOMMITTED
    与READ COMMITTED 隔离级相反,它允许读取已经被其它用户修改但尚未提交确定的数据。
  • REPEATABLE READ
    在此隔离级下,用SELECT 命令读取的数据在整个命令执行过程中不会被更改。此选项会影响系统的效能,非必要情况最好不用此隔离级。
  • SERIALIZABLE
    与DELETE 语句中SERIALIZABLE 选项含义相同。

隔离级需要使用SET 命令来设定其语法如下:
SET TRANSACTION ISOLATION LEVEL
{READ COMMITTED
| READ UNCOMMITTED
| REPEATABLE READ
| SERIALIZABLE }

11.5.4 查看锁
可以通过企业管理器或存储过程来查看锁。
(1) 用Enterprise Manager 查看锁
在企业管理器中选择目录树窗口中“Management” 文件夹下,“Current Activity” 中的“Locks / Process ID” 节点,则可以查看当前锁定的进程;选择同级的“Locks / Object”节点下的相应字节点,则可以查看当前锁定的对象,如图11-1 所示。在图11-1 中,右键单击任务板窗口中的对象,从快捷菜单中选择“属性”选项,则会出现如图11-2 所示的锁的进程细节对话框。在此,可以刷新或杀死锁的进程。

本新闻共2页,当前在第1页  1  2  

上一篇:存储过程概述
下一篇:SQL 数据库中的事务

关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·妙用系统组策略锁定Win XP分区 
·突破封锁:BT下载技巧新使用教程(图)
·创建数据库
·压缩数据库
·数据库维护计划
·系统数据库
·实例数据库
·创建数据库表
·自定义数据类型
·SQL 数据库表的修改

·注册码-序列号 大全
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·全面深入了解DVD光盘结构
·BadCopy 3.80 Build 1108 注册码
·Serv-U FTP Server v6.1.0.4 Corpora
·Bad CD Repair Pro V4.05 注册码
·Macromedia Authorware 7.02 安装序列
·WinRAR 3.51 注册码
·迷你歌词4.0.1978注册码
·QQ密码丢失后能做的事情:快速找回密码
·系统优化 专题
·免费代理IP(每日更新)
·找回QQ密码的注意事项 
·最经典的黑客入门教材
·怎样查找对方的IP地址
·求职简历封皮
·电脑初学者必备之Windows进程大全
·实战系统虚拟利器——MS VPC 2004
·史上最强QQ个人档案资料欣赏
评论 本站声明
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号