none
关于perfmon中的mssql : locks : lock timeout RRS feed

  • 问题

  • 我在用perfmon监视lock timeout时,发现偶尔有>0的值(不稳定,从0.1到100)出现,但是我的应用程序却没有检测到任何执行错误;进一步跟踪发现,锁定超时发生在对资源"key"和"page"的锁定上;

    另外,我用的环境是 ado+sqlncli10+ms sql server 2008

    @@lock_timeout用的是默认值-1.

    请指教~

    2010年3月30日 9:39

答案

全部回复

  • That tells you how many times sql didn't get lock before timeout, not necessary cause app failure.
    2010年3月30日 12:46
  • 那么,对于超时的锁,SQL是怎么处理的呢?继续等待?还是放弃抛出消息?

    而且我使用的锁超时时间是-1啊,应该不会超时,怎么会出现超时的呢?

    另,我进一步观察性能计数器发现,所有的超时都发生在nowait锁上,请问什么情况下会导致这些锁的发生呢?我并没有指定nowait啊.

    2010年3月31日 2:26
  • Sql will try to grab lock again if process that asks for lock doesn't time out.
    2010年3月31日 2:48
  • 在网络上查了一些资料,这些nowait lock是由sql server内部发出的,目的是为了优化查询,如果不能获取到锁,或许会对查询优化有些影响吧
    2010年4月4日 13:38