SQL2005中的事务与锁定(六)

-狙击手- 2009-10-19 11:14:45
加精
SQL2005中的事务与锁定(六)


全文阅读:SQL2005中的事务与锁定(六)



------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date : 2009-10-12 ――2009-10-17
-- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
-- 转载请注明出处,更多请关注:http://blog.csdn.net/happyflystone
-- 关键字:锁定资源 锁定 应用程序锁定 绑定 锁生命周期 实体类型
------------------------------------------------------------------------

在前面一篇我开始说到锁,然后在说明可锁定资源并没有深入的解释资源这一块,所以没深入是想在大家对锁的模式有一定了解后再来学习资源。在前面的好多用例里我们使用sp_us_lockinf这个用户过程取回的锁的相关信息都有一栏资源类型,呵呵,还有印象吧。下面我们来稍深入理解一下,然后我们对个别类型的资源再来点实例,最后说点锁的本质及生存周期和所有者等等。

4、深入可锁定资源及特殊锁定

可资源资源有哪些呢,我在前面已经用

SELECT * FROM MASTER..SPT_VALUES WHERE TYPE = 'LR'

进行了列表,一共有12种之多,其实我们从本篇的开始到现在一直在接触的行锁(RID),键锁(KEY),分页(PAG)、表(TAB)及对象(OBJECT)都是我们可锁定的资源,这几类我们已经接触到很多了,下面我就不常关注的几个进行一下说明。

EXT 这是数据或索引页面扩展。这一块如果以后有时间整理表的数据存储或索引分页的结构时可以细细说说扩展,现在我们可以简单的理解为:扩展是一个64K的分配单元,是由连续的8个8K分页组成。SQLSERVER在表或索引分配扩展时会分配8个连续的8K空间,每一个扩展的首页号是8的倍数,但是扩展间本身不一定连续哦,这个不连续就是碎片了。在扩展上也可以加锁定,其实这也好理解,在不同的表或索引需要新的扩展时,系统为了让同一扩展不被错误使用(比如两个表同时得到一个扩展,那比较恐怖哦)而进行共享或排它锁定。不过是系统自发进行的,我们一般看不到。这种物理上的一致性我们在前面提到过一种闩锁,嘿嘿有印象不?我们也可以把这个当作一种事实上的闩锁。

DB数据库(DATABAES)。其实只要我打开一个连接,如果你使用sp_us_lockinfo一定得到一条相应当前连接的DB类型的锁定。结果如图61

select @@spid

go

exec sp_us_lockinfo







那么在DATABASE这种类型下有几种锁呢,为别对应哪些操作呢?能不能模拟出来呢?好,下面我们来模拟一些吧,比如删除库操作:

1、 先打开一个managerment studio,我们先创建一个数据库,库名为dblock,建好后运行一下我们前面那个工具sp_us_lockinfo

2、 打开另一个managerment studio,右击dblock进行删除操作,在弹出的窗口点确认

3、 在第二步操作后迅速切换到第一个managerment staido并运行如下代码 ,并得到图63

select @@spid

exec sp_us_lockinfo




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/happyflystone/archive/2009/10/19/4696884.aspx




PS:发帖真累,不能直接复制。
...全文
1597 124 打赏 收藏 转发到动态 举报
写回复
用AI写文章
124 条回复
切换为时间正序
请发表友善的回复…
发表回复
DengXingJie 2009-11-18
  • 打赏
  • 举报
回复
收藏
weinideai 2009-10-28
  • 打赏
  • 举报
回复
顶!学习
winsonyuan 2009-10-26
  • 打赏
  • 举报
回复
懂了一点点,顶
taoistong 2009-10-26
  • 打赏
  • 举报
回复
人齐结帖
xiaochu62 2009-10-25
  • 打赏
  • 举报
回复
好好学习了
hfyuii 2009-10-25
  • 打赏
  • 举报
回复
只是路过的
sun5880172 2009-10-25
  • 打赏
  • 举报
回复
e
h183125519 2009-10-24
  • 打赏
  • 举报
回复
学习 继续关注~!
milan0118 2009-10-24
  • 打赏
  • 举报
回复
学习学习
minghakulamatata 2009-10-24
  • 打赏
  • 举报
回复
up
zxj828282 2009-10-24
  • 打赏
  • 举报
回复
学习
nidhiexisb 2009-10-24
  • 打赏
  • 举报
回复
谢谢
Cyanapple_wen 2009-10-23
  • 打赏
  • 举报
回复
围观
lichangjun1989 2009-10-23
  • 打赏
  • 举报
回复
路过
xiaocongzhi 2009-10-23
  • 打赏
  • 举报
回复
SQL好东东呀~
xiedi1209 2009-10-23
  • 打赏
  • 举报
回复
现在发觉自己的sql水平真是有限
冰岛男孩 2009-10-23
  • 打赏
  • 举报
回复
mark
xxxl 2009-10-23
  • 打赏
  • 举报
回复
up
boombacn 2009-10-23
  • 打赏
  • 举报
回复
啊呀,100楼沦陷
Monkey_D_Luffy 2009-10-23
  • 打赏
  • 举报
回复
全是高手啊
加载更多回复(97)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧