仓酷云

标题: MSSQL教程之数据库中的锁 [打印本页]

作者: 分手快乐    时间: 2015-1-16 22:19
标题: MSSQL教程之数据库中的锁
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用11.5.1锁的观点
锁(Lock)是在多用户情况下对资本会见的一种限定。机制当对一个数据源加锁后,此数据源就有了必定的会见限定。我们就称对此数据源举行了“锁定”。在SQLServer中,能够对以下的工具举行锁定:<P>
11.5.2锁的种别
在SQLServer中,锁有两种分类办法。
(1)从数据库体系的角度来看
锁分为以下三品种型:<P>

(2)从程序员的角度看
锁分为以下两品种型:<P>
<P>11.5.3断绝级别
断绝(Isolation)是盘算机平安学中的一种观点,其实质上是一种封闭机制。它是指主动数据处置体系中的用户和资本的相干管束干系,也就是用户和历程相互分隔,且和操作体系的回护把持也分隔来。在SQLServer中,断绝级(IsolationLevel)是指一个事件和别的事件的断绝水平,即指定了数据库怎样回护(锁定)那些以后正在被别的用户或服务器哀求利用的数据。指定事件的断绝级与在SELECT语句中利用锁定选项来把持锁定体例具有不异的效果。
在SQLServer中有以下四种断绝级:
断绝级必要利用SET命令来设定其语法以下:
SETTRANSACTIONISOLATIONLEVEL
{READCOMMITTED
|READUNCOMMITTED
|REPEATABLEREAD
|SERIALIZABLE}

11.5.4检察锁
能够经由过程企业办理器或存储历程来检察锁。
(1)用EnterpriseManager检察锁
在企业办理器当选择目次树窗口中“Management”文件夹下,“CurrentActivity”中的“Locks/ProcessID”节点,则能够检察以后锁定的历程;选择同级的“Locks/Object”节点下的响应字节点,则能够检察以后锁定的工具,如1-1所示。在1-1中,右键单击义务板窗口中的工具,从快速菜单当选择“属性”选项,则会呈现如1-2所示的锁的历程细节对话框。在此,能够革新或杀逝世锁的历程。

杀逝世历程还能够用以下Transact-SQL命令来举行:
KILLspid
spid是SystemProcessID,即体系历程编号的缩写,如1-1中所示。
MSSQL教程之数据库中的锁
登录/注册后可看大图
MSSQL教程之数据库中的锁
登录/注册后可看大图

1-2锁定的历程细节

(2)用体系存储历程Sp_lock检察锁
存储历程Sp_lock的语法以下:
sp_lockspid
SQLServer的历程编号spid能够在master.dbo.sysprocesses体系表中查到。spid是INT范例的数据,假如不指定spid,则显现一切的锁。

MSSQL教程之数据库中的锁
登录/注册后可看大图


11.5.5逝世锁及其避免
逝世锁(Deadlocking)是在多用户或多历程情况下,为利用统一资本而发生的没法办理的争用形态,普通地讲,就是两个用户各占用一个资本,两人都想利用对方的资本,但同时又不肯保持本人的资本,就一向守候对方保持资本,假如不举行内部干与,就将一向耗下往。

逝世锁会形成资本的大批华侈,乃至会使体系溃散。在SQLServer中办理逝世锁的准绳是“就义一个比两个都逝世强”,即挑出一个历程作为就义者,将其事件回滚,并向实行此历程的程序发送编号为1205的毛病信息。而避免逝世锁的路子就是不克不及让满意逝世锁前提的情形产生,为此,用户必要遵守以下准绳:<P>
本章小结
本章中先容了数据更新的办法及事件和锁的观点。除利用本章报告的语句更新数据外,还可使用视图来更新数据,有关视图的使用请拜见第13章“游标和视图”。
在Windows中MySQL以服务形式存在,在使用前应确保此服务已经启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注意启动者应具有管理员权限。
作者: 不帅    时间: 2015-1-19 08:41
可以动态传入参数,省却了动态SQL的拼写。
作者: 老尸    时间: 2015-1-27 15:43
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
作者: 小女巫    时间: 2015-2-5 11:30
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
作者: 飘飘悠悠    时间: 2015-2-11 14:30
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
作者: 愤怒的大鸟    时间: 2015-3-2 15:09
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
作者: 灵魂腐蚀    时间: 2015-3-11 04:19
所以你总能得到相应的升级版本,来满足你的需求。
作者: 第二个灵魂    时间: 2015-3-17 20:53
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
作者: 冷月葬花魂    时间: 2015-3-25 02:34
你可以简单地认为适合的就是好,不适合就是不好。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2