|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于在MySQL中有如此众多的额外功能可选,诸如存储引擎等,你可以选择最适合你公司的一个,或者尝试选用多个引擎。MySQL开始非常小巧,但是可以随着公司的成长而不断地变强大。--=====================================================
--怎样利用跟踪标志1204
--
--邹建2005.08(援用请保存此信息)
--=====================================================
--=====================================================
/*--申明
跟踪标志1204用于前往介入逝世锁的锁的范例和以后受影响的命令。逝世锁信息将主动发送到毛病日记。
开启跟踪标志利用DBCCTRACEON,第3个参数指定为-1,暗示不但单针对以后connection,而是针对一切包含将来创建的connection
封闭跟踪标志利用DBCCTRACEOFF
上面是在查询剖析器中利用跟踪标志1204的演示,逝世锁的信息被纪录在SQLServer日记中,能够经由过程上面的办法检察:
企业办理器--睁开实例--办理--SQLServer日记
因为在企业办理器中检察时,部分日记信息会被截断,以是以是倡议利用记事本一类的文本检察工具间接检察MSSQLLOG目次下的ERRORLOG文件
有关逝世锁信息的具体申明参考联机匡助(联机丛书--菜单中的GO--URL--输出上面的地点:
mk:@MSITStore:C:Program%20FilesMicrosoft%20SQL%20Server80ToolsBooks rblsql.chm::/tr_servdatabse_5xrn.htm
--*/
--=====================================================
--测试情况
USEtempdb
GO
CREATETABLEta(idint)
INSERTtaSELECT1
CREATETABLEtb(idint)
INSERTtbSELECT1
GO
--开启逝世锁纪录
DBCCTRACEON(1204,3605,-1)
GO
--发生逝世锁(打一个新毗连,复制此段代码而且实行)
SETLOCK_TIMEOUT-1
SETDEADLOCK_PRIORITYLOW
SETTRANSACTIONISOLATIONLEVEL
REPEATABLEREAD
BEGINTRAN
SELECT*FROMtaWHEREid=1
WAITFORDELAY00:05:00
UPDATEtbSETid=2WHEREid=1
COMMITTRAN
GO
--封闭逝世锁纪录
DBCCTRACEOFF(1204,3605)
GO
--扫除测试
DROPTABLEta,tb
GO
--1204发生的日记纪录信息
2005-08-2508:16:21.85spid4Node:1
2005-08-2508:16:21.85spid4RID:2:1:28:0CleanCnt:2Mode:UFlags:0x2
2005-08-2508:16:21.85spid4GrantList0::
2005-08-2508:16:21.85spid4Owner:0x1998aec0Mode:SFlg:0x0Ref:1Life:02000000SPID:52ECID:0
2005-08-2508:16:21.85spid4SPID:52ECID:0StatementType:UPDATELine#:1
2005-08-2508:16:21.85spid4InputBuf:LanguageEvent:SETLOCK_TIMEOUT-1
SETTRANSACTIONISOLATIONLEVEL
REPEATABLEREAD
BEGINTRAN
SELECT*FROMtbWHEREid=1
WAITFORDELAY00:01:00
UPDATEtaSETid=2WHEREid=1
COMMITTRAN
2005-08-2508:16:21.85spid4RequestedBy:
2005-08-2508:16:21.85spid4ResType:LockOwnerStype:ORMode:XSPID:51ECID:0Ec:(0x19B5B558)Value:0x1997b2c0Cost:(1/0)
2005-08-2508:16:21.85spid4Node:2
2005-08-2508:16:21.85spid4RID:2:1:15:0CleanCnt:2Mode:UFlags:0x2
2005-08-2508:16:21.85spid4GrantList0::
2005-08-2508:16:21.85spid4Owner:0x1997b3e0Mode:SFlg:0x0Ref:1Life:02000000SPID:51ECID:0
2005-08-2508:16:21.85spid4SPID:51ECID:0StatementType:UPDATELine#:1
2005-08-2508:16:21.85spid4InputBuf:LanguageEvent:
SETLOCK_TIMEOUT-1
SETDEADLOCK_PRIORITYLOW
SETTRANSACTIONISOLATIONLEVEL
REPEATABLEREAD
BEGINTRAN
SELECT*FROMtaWHEREid=1
WAITFORDELAY00:01:00
UPDATEtbSETid=2WHEREid=1
COMMITTRAN
2005-08-2508:16:21.85spid4RequestedBy:
2005-08-2508:16:21.85spid4ResType:LockOwnerStype:ORMode:XSPID:52ECID:0Ec:(0x1A24D558)Value:0x1998cfa0Cost:(0/0)
2005-08-2508:16:21.85spid4VictimResourceOwner:
2005-08-2508:16:21.85spid4ResType:LockOwnerStype:ORMode:XSPID:51ECID:0Ec:(0x19B5B558)Value:0x1997b2c0Cost:(1/0)
--剖析日记纪录信息,以剖析Node:1为例,--**标注的是申明
--**Node:x在逝世锁的链中暗示项目号(x)。
2005-08-2508:16:21.85spid4Node:1
2005-08-2508:16:21.85spid4RID:2:1:28:0CleanCnt:2Mode:UFlags:0x2
--**Lists,能够是受权(Grant)、转换(Convert)和守候(Wait),GrantList枚举以后受权的一切者.
2005-08-2508:16:21.85spid4GrantList0::
2005-08-2508:16:21.85spid4Owner:0x1998aec0Mode:SFlg:0x0Ref:1Life:02000000SPID:52ECID:0
--**在并行历程情形下,标识体系历程ID线程。条目SPIDxECID0暗示主线程,而SPIDxECID>0暗示统一SPID的子线程。
--**StatementType:语句范例
--**Line#:逝世锁产生时,正在实行的语句的行号
2005-08-2508:16:21.85spid4SPID:52ECID:0StatementType:UPDATELine#:1
--**inputBuf列出以后批处置中一切的语句。
2005-08-2508:16:21.85spid4InputBuf:LanguageEvent:
SETLOCK_TIMEOUT-1
SETTRANSACTIONISOLATIONLEVEL
REPEATABLEREAD
BEGINTRAN
SELECT*FROMtbWHEREid=1
WAITFORDELAY00:01:00
UPDATEtaSETid=2WHEREid=1
COMMITTRAN
2005-08-2508:16:21.85spid4RequestedBy:
--**Mode为线程哀求、受权或守候的特定资本,指定锁的范例。形式能够是IS(意向共享)、S(共享)、U(更新)、IX(意向独有)、SIX(与意向独有共享)和X(独有)
2005-08-2508:16:21.85spid4ResType:LockOwnerStype:ORMode:XSPID:51ECID:0Ec:(0x19B5B558)Value:0x1997b2c0Cost:(1/0)
列举选择MySQL的理由的最困难的地方在于,如何对这些理由进行排序。MySQL学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? |
|