这个现象可以理解成这样:一个单线程作业,不停的在对A表做insert动作,对B、C、D表做update动作。
一天之内绝大部分时间都很顺畅,但偶尔会出现卡的情况,比如说insert A表本来只要0.1秒,卡的时候可能要30秒这样。因为是偶尔会出现,操作1万次大约会出现10次的样子。请大家帮想想有哪些原因会导致这种现象。工具用的是Nhibernate和SQL2005万分感谢!

解决方案 »

  1.   

    不是你一人在用数据库。insert A表本来只要0.0001秒,卡的时候可能要0.003秒很正常。如果你的系统很慢,那放大1000倍也正常。
      

  2.   

    dead lock?
    你确定这个数据库只有你用吗?
    可以用Profiler再确定一下
      

  3.   

    可以看下日志有没有并发造成的死锁问题
    SQL2005+有死锁检查,但这仍需要一点时间,可以适当减小Lock_Timeout试试http://www.cnblogs.com/happyhippy/archive/2008/11/14/1333922.html
      

  4.   

    NHibernate支持Sql Server, Oracle, Mysql, Firebird, Sybase, PostgreSql等数据库,应该和NHibernate没有关系,检查日志看看是不是有什么异常记录。