管理-当前活动-锁/进程 ID 发现有阻塞者和正在阻塞者,一阻塞的话,ERP的某一个模块就卡住了。现有三个疑问:
1、为什么会出现这样的情况呢?
2、该怎样才能避免不阻塞?
3、是不是不同的执行语句就会影响到相应的某一个模块?

解决方案 »

  1.   

    阻塞一般是因为表锁定引起的。在select语句加上with(nolock)一定程度上可以缓解这个问题。但还需在你的业务逻辑上做优化,尽量不会让并发操作出问题。
      

  2.   

    那些阻塞者执行的语句都是select 或者 update的。
    有时刷新不了当前活动,出现:错误 1222: 已超过了锁请求超时时段。
    这又是为什么?
      

  3.   

    一般来讲,
     当来自应用程序的第一个连接控制锁而第二个连接需要相冲突的锁类型时,将发生阻塞。
     其后果就是强制第二个连接等待,而在第一个连接上阻塞。
     根据楼主的描述,感觉可以从以下两种方式着手:
     一,SQL优化,看看导致阻塞的SQL是否效率低下,可以单独执行测试下。
     二,查看是否有事务或者游标,占用时间过长。可以适当优化下。
      

  4.   

    看了下系统工具-事件查看器-应用程序
    发现SMTP有错误计算机管理-服务和应用程序-服务
    名称:Simple Mail Transfer Protocol (SMTP) 
    描述:跨网传输电子邮件这个服务启动不了,会不会影响到ERP系统的操作?