执行事务时,如果顺序不一样,会导致sql锁死
来源:互联网 发布:网页编程待遇 编辑:程序博客网 时间:2024/06/06 04:24
如何使用跟踪标记 1204
-- =====================================================
-- 如何使用跟踪标记 1204
--
-- 邹建 2005.08(引用请保留此信息)
-- =====================================================
-- =====================================================
/*-- 说明
跟踪标记 1204 用于返回参与死锁的锁的类型以及当前受影响的命令。死锁信息将自动发送到错误日志。
开启跟踪标记使用 DBCC TRACEON ,第3个参数指定为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection
关闭跟踪标记使用 DBCC TRACEOFF
下面是在查询分析器中使用跟踪标记 1204 的演示, 死锁的信息被记录在 SQL Server 日志中,可以通过下面的方法查看:
企业管理器 -- 展开实例 -- 管理 -- SQL Server 日志
由于在企业管理器中查看时, 部分日志信息会被截断, 所以所以建议使用记事本一类的文本查看工具直接查看 /MSSQL/LOG 目录下的 ERRORLOG 文件
有关死锁信息的详细说明参考联机帮助(联机丛书--菜单中的GO--URL--输入下面的地址:
mk:@MSITStore:C:/Program%20Files/Microsoft%20SQL%20Server/80/Tools/Books/trblsql.chm::/tr_servdatabse_5xrn.htm
--*/
-- =====================================================
-- 测试环境
USE tempdb
GO
CREATE TABLE ta(id int)
INSERT ta SELECT 1
CREATE TABLE tb(id int)
INSERT tb SELECT 1
GO
-- 开启死锁记录
DBCC TRACEON(1204,3605,-1)
GO
-- 产生死锁 (查询窗口A)
SET LOCK_TIMEOUT -1
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM ta WHERE id=1
WAITFOR DELAY '00:05:00'
UPDATE tb SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 产生死锁 (查询窗口B)
SET LOCK_TIMEOUT -1
SET DEADLOCK_PRIORITY LOW
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM tb WHERE id=1
UPDATE ta SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 关闭死锁记录
DBCC TRACEOFF(1204,3605)
GO
-- 清除测试
DROP TABLE ta,tb
GO
-- =====================================================
-- 如何使用跟踪标记 1204
--
-- 邹建 2005.08(引用请保留此信息)
-- =====================================================
-- =====================================================
/*-- 说明
跟踪标记 1204 用于返回参与死锁的锁的类型以及当前受影响的命令。死锁信息将自动发送到错误日志。
开启跟踪标记使用 DBCC TRACEON ,第3个参数指定为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection
关闭跟踪标记使用 DBCC TRACEOFF
下面是在查询分析器中使用跟踪标记 1204 的演示, 死锁的信息被记录在 SQL Server 日志中,可以通过下面的方法查看:
企业管理器 -- 展开实例 -- 管理 -- SQL Server 日志
由于在企业管理器中查看时, 部分日志信息会被截断, 所以所以建议使用记事本一类的文本查看工具直接查看 /MSSQL/LOG 目录下的 ERRORLOG 文件
有关死锁信息的详细说明参考联机帮助(联机丛书--菜单中的GO--URL--输入下面的地址:
mk:@MSITStore:C:/Program%20Files/Microsoft%20SQL%20Server/80/Tools/Books/trblsql.chm::/tr_servdatabse_5xrn.htm
--*/
-- =====================================================
-- 测试环境
USE tempdb
GO
CREATE TABLE ta(id int)
INSERT ta SELECT 1
CREATE TABLE tb(id int)
INSERT tb SELECT 1
GO
-- 开启死锁记录
DBCC TRACEON(1204,3605,-1)
GO
-- 产生死锁 (查询窗口A)
SET LOCK_TIMEOUT -1
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM ta WHERE id=1
WAITFOR DELAY '00:05:00'
UPDATE tb SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 产生死锁 (查询窗口B)
SET LOCK_TIMEOUT -1
SET DEADLOCK_PRIORITY LOW
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM tb WHERE id=1
UPDATE ta SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 关闭死锁记录
DBCC TRACEOFF(1204,3605)
GO
-- 清除测试
DROP TABLE ta,tb
GO
0 0
- 执行事务时,如果顺序不一样,会导致sql锁死
- 如果Android会死
- hibernate事务提交执行sql顺序
- sql的select出现堵塞导致程序卡死的解决方法(在事务中查询)
- 结构体中变量输入顺序不对会导致执行结果不对
- php如果执行一个死循环及后台自动执行
- 事务执行SQL语句
- sql server 执行事务
- OceanBase由于合并操作导致事务被杀死的情况。
- hibernate,以及sql执行顺序、数据锁
- sql执行的顺序
- SQL语句执行顺序
- Oracle SQL 执行顺序
- sql 执行顺序
- sql 语句 执行顺序
- sql执行顺序
- sql执行顺序
- sql执行顺序
- Volley使用(一)
- win8显示缩略图
- LXC1.0.7-- lxc-start 源码分析 03
- 异步编程的处理
- jQuery 中 三目运算 替代 if 判断 的简洁性
- 执行事务时,如果顺序不一样,会导致sql锁死
- Java I/O解读与使用实例
- 处理器体系结构(了解CPU的基本运行原理)——《深入理解计算机系统》
- 一个多maven项目聚合的实例
- Linux_shell——第1章牛刀小试
- openfire配置标准数据库(mysql)
- Oracle分区
- 获取两个tickcount差距
- WIN7下安装Oracle 10g 的详细过程以及有关问题的解决(转)