MYSQL网页设计怎样利用跟踪标志 1204
由于在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学习教程这就如同我们经常争论的故事:先有鸡还是先有蛋? 比如日志传送、比如集群。。。 入门没那么困难,精通没那么容易 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 我们学到了什么?思考问题的时候从表的角度来思考问 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
页:
[1]