首先肯定是数据库问题,以前一直运行良好的程序,
最近总出现录入不了数据现象,于是查看数据库中
是否有死锁,无论是用网上流行的几种查看死锁的
存储过程还是在企业管理器中都看不出来死锁,
而用户当执行到那个存储过程的时候就会停止不动,
直至超时,存储过程无非是从一个表里取最大值,
有好几个这样的存储过程都是这样,他们也不是从一个
表中取的数据。这种现象偶尔就会出现,过了大概半小时
就会自动好转,不得其解。
难道会是因为数据库日志大吗,因为硬盘地方够,
日志一直没有清理,现在日志有200多G,会因为这个,
而锁柱某个表吗?而我查看是没有锁和阻塞信息的,
在企业管理器中查看锁/对象,有这样的信息,
master.dbo.spt_values,tempdb.dbo.##lockinfo,
当然也有被锁的数据库名字,
求大牛给指点
最近总出现录入不了数据现象,于是查看数据库中
是否有死锁,无论是用网上流行的几种查看死锁的
存储过程还是在企业管理器中都看不出来死锁,
而用户当执行到那个存储过程的时候就会停止不动,
直至超时,存储过程无非是从一个表里取最大值,
有好几个这样的存储过程都是这样,他们也不是从一个
表中取的数据。这种现象偶尔就会出现,过了大概半小时
就会自动好转,不得其解。
难道会是因为数据库日志大吗,因为硬盘地方够,
日志一直没有清理,现在日志有200多G,会因为这个,
而锁柱某个表吗?而我查看是没有锁和阻塞信息的,
在企业管理器中查看锁/对象,有这样的信息,
master.dbo.spt_values,tempdb.dbo.##lockinfo,
当然也有被锁的数据库名字,
求大牛给指点
select max(id) as maxid from tab
改为
select max(id) as maxid from tab with(nolock)
如:
cTbName iMaxId
aa 100001
bb 999
cc 1599
日志跟阻塞无关查看下DMV,若是2005 or 2008
或者Profiler一下