`
weitao1026
  • 浏览: 1034483 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设置与查看sql server中锁的超时时间(ZT)

 
阅读更多

在数据库的应用系统中,死锁是不可避免的。通过设置死锁的处理优先级方法,可以在数据库引擎中自动检测到死锁,对发生的死锁会话进行干预,从而达到解除死锁的目点,但在这种情况下,会话只能被动的等待数据库引擎的自我检查。

我们是否可以让会话自身也拥有处理死锁的主动权呢?这就是设置锁的超时时间。当一个会话与另一个会话冲突引阻塞时,如果等待的时间超过指定的值,则该会话自动取消,并释放数据库资源。这样,就达到了解决死锁的目的。

那么如何来查看锁的超时时间呢?利用@@lock_timeout函数即可: 可以看一下@@LOCK_TIMEOUT的语法与定义:

@@LOCK_TIMEOUT--返回当前会话的当前锁超时设置,单位为毫秒。

返回类型--integer

解释说明: SET LOCK_TIMEOUT 允许应用程序设置语句等待阻塞资源的最长时间。当一条语句已等待超过LOCK_TIMEOUT所设置的时间,则被锁住的语句将自动取消,并给应用程序返回一条错误信息。

比如,我们要查看一个会话的超时时间,可以利用以下sql来查看:

select @@LOCK_TIMEOUT

在没有设置过超时时间的情况下,该语句会返回结果-1,代表没有超时时间。

那么又如何设置超时时间呢?可以利用以下sql语句:

set lock_timeout <锁超时时间 >

注意: 1,锁超时时间是以毫秒为单位的。 2,设置的超时时间只对当次会话有效。 可以做一个简单的测试,在microsoft sql server management中打开一个查询窗口,执行

set lock_timeout 2600 select @@lock_timeout

可以看到返回结果为2600毫秒,然后再打开一个新的查询窗口(即一个新的会话),执行

select @@lock_timeout

返回结果为-1,可见前一个会话的设置对当前的会话无效。

如果将锁超时间设置为0,那么在发生资源锁定时,会话将不做任何等待,直接返回1222错误。

使用锁超时的不足之处: 如果我们有设置了锁超时时间,那么当会话等待时间达到超时时间时,就会直接返回1222错误,而且不会回滚或取消当前事务。需要我们在应用程序中截获1222错误,再作相关处理。如果我们在应用程序中未做任何处理,则事务会继续运行,从而导致程序的逻辑错误,因为前面有的语句可能根本没有执行或未执行完整。

分享到:
评论

相关推荐

    Sql Server 数据库超时问题的解决方法

    Sql Server 数据库超时问题的解决方法主要包括调整等待响应时间、在企业管理器中调整等待响应时间、在查询分析器中调整等待响应时间、在.NET 中调整等待响应时间等方法。通过这些方法,可以解决 Sql Server 数据库...

    Sql Server数据库超时问题的解决方法

    DSNtest = "DRIVER={SQLServer};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase" Conn.Properties("Connect Timeout") = 15 '以秒为单位 Conn.open DSNtest 如果遇到查询超时的错误,可以在程序中...

    [ODBC_SQL_Server_Driver_]超时已过期的解决过程和方法

    ### ODBC与SQL Server连接超时问题及解决方案 #### 1. 引言 在IT领域,特别是数据库管理和应用开发中,遇到“[ODBC SQL Server Driver] 超时已过期”的错误是较为常见的问题。本文将深入探讨这一问题的根源及其解决...

    sqlServer 各种疑难杂症和学习资料.rar

    这份"sqlServer 各种疑难杂症和学习资料.rar"压缩包显然包含了一系列与SQL Server相关的学习资源,包括经典案例和学习指导,对于初学者或经验丰富的DBA来说都是宝贵的参考资料。 在SQL Server的学习过程中,有几个...

    sql server锁机制

    SQL Server的锁机制是数据库管理系统中用于控制并发访问和维护数据完整性的重要机制。它确保了在多用户环境中,数据能够被正确地读取和修改,防止出现数据不一致的情况。以下是对SQL Server锁机制的详细解释: 1. *...

    SQlServer中的锁

    SQL Server中的锁机制是数据库管理系统为了保证数据的一致性和完整性而设计的重要机制。在多用户同时访问数据库的环境中,为了防止并发操作导致的数据不一致,SQL Server采用了多种类型的锁来控制对数据的访问。 ...

    sqlserver日志查看工具

    SQL Server日志查看工具是数据库管理员和开发人员的重要辅助工具,它可以帮助我们深入了解数据库的运行状态,诊断问题,以及进行故障排除。Log Explorer 4.2 是一款专门针对Microsoft SQL Server的日志分析软件,...

    SQLServer200自动杀锁

    在SQL Server 200中,"自动杀锁"是一个重要的数据库管理概念,尤其是在处理并发事务和性能优化时。这个话题对于SQL Server管理员和开发者来说是至关重要的,因为死锁可能会导致事务阻塞,影响数据库的正常运行。下面...

    sqlserver时间函数

    时间函数,sqlserver,标签系统标签系统标签系统标签系统

    C#访问SqlServer设置链接超时的方法

    在C#中,当与SQL Server数据库进行交互时,可能会遇到执行时间较长的查询或操作。在这种情况下,为了避免应用程序无响应或出现意外的挂起,我们可以设置连接和命令的超时时间。本篇文章将深入探讨如何在C#中设置访问...

    浅析SQL Server数据库事务锁机制.pdf

    在SQL Server中,当一个事务中的锁较多,达到锁升级门限时,系统会自动将行级锁和页面锁升级为表级锁。这一过程是自动的,用户无需手动设置。 SQL Server中锁的模式和兼容性包括以下几种: 1. 共享锁(Shared Lock...

    SQL server 自旋锁争用专题

    SQL Server自旋锁争用是一个高级数据库管理问题,通常出现在高性能、高并发的系统中。自旋锁是操作系统中的一个同步机制,用于控制对共享资源的访问。在数据库系统中,自旋锁用于保护数据结构在并发访问时的完整性。...

    快速对SQL Server锁机制进行掌握的窍门

    SQL Server 锁机制是数据库管理系统中用于控制并发访问和维护数据一致性的关键技术。在SQL Server中,锁的主要目的是确保在多用户环境中,当多个事务同时访问和修改数据时,能够保持数据的完整性和一致性。以下是...

    SQLServer常见锁表优化语句.txt

    SQLServer常见锁表优化语句

    SqlServer连接工具

    SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...

    sql server2019安装包

    在安装过程中,可以选择安装类型(如Developer Edition或Enterprise Edition)、配置SQL Server服务账户、设置实例名称、配置身份验证模式(Windows身份验证或混合模式)等。安装完成后,可以通过SSMS连接到SQL ...

    SQLServer+ 免安装版

    SQLServer+是在原有SQLServer2000的基础上改善了数据库安装的繁锁性,让软件企业在发布基于SQLServer2000数据库软件的时候,只要把软件打包进入安装包而不需要再单独安装数据库,也不需要另外进行数据库的设置,就...

    sql server客户端连接工具

    在压缩包文件名"SQL客户端(2000界面)"中,提到的可能是与SQL Server 2000版本相关的客户端工具,这可能指的是较早版本的Management Studio或Query Analyzer,它们具有与现代版本不同的界面和特性。尽管SQL Server ...

    Spotlight on SQL Server

    2. **安装SQL Server**:安装过程中需要选择适当的版本(如Express、Developer、Standard或Enterprise),配置服务器实例,设置数据库文件路径,以及确定安全设置,包括登录账户和权限分配。 3. **Spotlight on SQL...

    PB设置OLE DB 连接SQL SERVER

    在本篇文章中,我们将深入探讨如何使用PowerBuilder(简称PB)通过OLE DB接口与SQL Server建立连接,并分别介绍两种不同的登录方法:Windows身份验证登录和混合身份验证登录。此外,我们还会详细介绍这两种登录方式...

Global site tag (gtag.js) - Google Analytics