用sp_who2 active看sql server有没有阻塞情况。

解决方案 »

  1.   

    --查看堵塞進程
    sp_who active  --看看哪个引起的阻塞,blk
    sp_lock  --看看锁住了那个资源id,objid ,select object_name(objid) 得到
    dbcc inputbuffer(@blk) -- 看看是那个语句
      

  2.   

    1.不要使用session存大对象,存点简短的信息还是可以的
    2.存储过程值得提倡!
    3.重启服务一般不会导致记录丢失,可能是程序出错或有人误删
      

  3.   

    在SQL中看看速度慢的时候“磁盘等待队列”的值是不是很高
    有可能是磁盘瓶颈导致速度慢,以至于事务的回滚
    而且经常发现有阻塞的情况发生
      

  4.   

    一般来说是连接的资源没有断开, 导致 sql server 中有很多空闲的连接出问题的时候你可以用 sp_who, 或者查查 master.dbo.sysprocesdes, 看看有多少记录, 如果记录很多, 而且 status 为 sleeping 的记录比较多, 则说明是连接没有正确的断开
    有可能是程序的问题, 你也可以考虑写个 job 定时去 kill 掉这些 sleeping 的里程
      

  5.   

    谢谢各位的回复.我已经更改成存储过程了,session换成cookie了,发现还是有这问题.后来发现原来的索引没有了,现在已重建索引,貌似没问题了,再监控两天,没问题再结帖