SQL SERVER 锁
SQL SERVER 锁
雅冰石
DBA
展开
-
SQL Server中解决死锁的新方法介绍
数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法。将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁。 use Northwindbegin tran insert into Orders(CustomerId) values(@#转载 2014-03-06 09:43:56 · 1101 阅读 · 0 评论 -
SQL SERVER死锁简介
简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直观理解转载 2014-01-10 09:06:49 · 855 阅读 · 0 评论 -
使用 SQL SERVER PROFILER 监测死锁
作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用。此时,你需要尽快侦测和处理这类问题。死锁是当两个或者以上的事务互相阻塞引起的。在这种情况下两个事务会无限期地等待对方释放资源以便操作。下面是死锁的示意图:本文将使用SQLServer Profiler来跟踪死锁。 准备工作:为了侦测死锁,我们需要先模拟死锁转载 2014-04-23 14:22:06 · 1526 阅读 · 0 评论 -
侦测阻塞语句
前言:如果一个事务正在等待一些给其他事务锁定的资源。这个事务就被成为“被阻塞的事务”。反过来,引起阻塞的事务,也就是锁定资源并造成其他事务等待的事务叫做“正在阻塞的事务”。长时间运行事务会阻塞其他事务和查询,使他们等待长时间。在繁重的系统中,很多时候我们会遇到阻塞问题,如果一个事务因为阻塞未完成。会造成一些列的等待链。本文将介绍如何发现并马上解决这方面的问题。转载 2014-04-24 10:18:59 · 883 阅读 · 0 评论 -
SQL SERVER 找出长时间运行的事务
前言:事务是OLTP系统中的主要部分。它管理数据一致性和数据并发问题,当多个资源同时被读取或者修改相同数据时,SQLServer会通过锁定机制来确保数据库中的数据总是处于一个有效状态。在SQLServer中,锁管理器是负责实现这些锁机制。SQLServer对于不同的资源类型提供不同的锁类型,如数据库、文件、对象、表、区、页和键。当你使用事务时,依然会遇到由事务引起的问题,这些通常是转载 2014-04-24 13:54:15 · 4611 阅读 · 0 评论 -
利用扩展事件监控死锁-图形用户界面
一:建事件会话1:打开新建会话向导展开对象资源管理器->管理->扩展事件->会话->新建会话向导:2:简介3:设置会话属性输入扩展事件会话名称(勾选‘在服务器启动时启动事件会话’,否则下次服务器启动时,会话目标数据都是空的):4:选择模板 5:选择要捕获的事件选择事件xml_deadlock_report,如图:选中,将其移到右边‘所选事翻译 2014-06-08 10:30:28 · 1417 阅读 · 0 评论 -
利用扩展事件和警报实时监控死锁-命令方式
一:实验背景日常工作中,经常会出现一些死锁现象发生,影响系统性能。因此,我们需要一种方法实时得监控死锁,一旦有死锁,发邮件通知我们,然后由相关人去解决。扩展事件是一种轻量级的调优工具,占用资源少,高配置性,高扩展性。所以我们选择用扩展事件监控死锁,然后通过警报,实时得通知我们。备注:本实验是以自己本地数据库实例做的。二:试验步骤1:建事件会话CREATE EVENT原创 2014-05-27 16:00:15 · 1267 阅读 · 0 评论 -
SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL
在检测死锁的时候,会用到sp_lock这个存储过程,里面有一列:type 即锁的资源类型通俗来讲就是SQLSERVER可以在哪些资源上加锁可以加锁的资源有RID KEY PAG EXT TAB DB FIL ,下面一一道来以下是对不同种类的资源含义的解释,只有了解他们的意思,才能真正看懂阻塞RID:格式为fileid:pagenumber:rid的标识符,其中fil转载 2014-06-09 15:58:30 · 1767 阅读 · 0 评论 -
意向锁
表是由行组成的,当我们向某个表加锁时,一方面需要检查该锁的申请是否与原有的表级锁相容;另一方面,还要检查该锁是否与表中的每一行上的锁相容。比如一个事务要在一个表上加 S 锁,如果表中的一行已被另外的事务加了 X 锁,那么该锁的申请也应被阻塞。如果表中的数据很多,逐行检查锁标志的开销将很大,系统的性能将会受到影响。为了解决这个问题,可以在表级引入新的锁类型来表示其所属转载 2014-06-13 15:57:18 · 3507 阅读 · 0 评论