番茄的梦想

那一抹夕阳

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理

2012年12月1日

摘要: 简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直观理解 在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁。由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:1)互斥条件: 主体对于资源是独占的,图1中每条汽车道只能跑一队汽车,不能跑第二队。2)请求和等待条件: 指主. 阅读全文
posted @ 2012-12-01 15:28 番茄的梦想 阅读(225) 评论(0) 推荐(0) 编辑

摘要: 简介 ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解.理解原子性(Atomicity) 原子性意味着数据库中的事务执行是作为原子。即不可再分,整个语句要么执行,要么不执行。 在SQL SERVER中,每一个单独的语句都可以看作是默认包含在一个事务之中: 所以,每一个语句本身具有原子性,要么全部执行,这么全部不执行,不会有中间状态: 上面说了,每一条.. 阅读全文
posted @ 2012-12-01 15:25 番茄的梦想 阅读(203) 评论(0) 推荐(0) 编辑

摘要: 简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标。如果数据库只接受一个连接一次只执行一个查询。那么查询当然是要多快好省的完成工作。但对于大多数数据库来说是需要同时处理多个查询的。这些查询并不会像绅士那样排队等待执行,而是会找最短的路径执行。因此,就像十字路口需要一个红绿灯那样,SQL Server也需要一个红绿灯来告诉查询:什么时候走,什么时候不可以走。这个红绿灯就是锁。 图1.查询可不会像绅士们那样按照次序进行排队为什么需要锁 在开始谈锁之前,首先要简单了解一下事务和事务的ACID属性。可以参看我之前的一篇关于ACID的文章。如果你了解了事务之间的影响方式,你就应该. 阅读全文
posted @ 2012-12-01 15:24 番茄的梦想 阅读(237) 评论(0) 推荐(0) 编辑

摘要: 除了 Standard(默认)模板以外,SQL Server Profiler还包含几个可监视特定类型的事件的预定义模板。下表列出了预定义模板、其用途以及其捕获何种事件类的信息。模板名称模板用途事件类SP_Counts捕获一段时间内存储过程的执行行为。SP:StartingStandard创建跟踪的通用起点。捕获所运行的全部存储过程和 Transact-SQL 批处理。用于监视常规数据库服务器活动。Audit LoginAudit LogoutExistingConnectionRPC:CompletedSQL:BatchCompletedSQL:BatchStartingTSQL捕获客户端提 阅读全文
posted @ 2012-12-01 13:22 番茄的梦想 阅读(3776) 评论(0) 推荐(0) 编辑