none
相同的C#系统代码调用相同的一段T-SQL语句时,偶尔会发生T-SQL执行超时异常? RRS feed

  • 问题

  • 大家好,

    请问大家有没有见过类似如下的情况:

    相同的C#代码程序 + 调用相同的一段T-SQL语法, 在上述背景下运行系统,偶尔会系统执行此段代码超时,发生如下情况时,做过如下的

    调试与检查:

    1. 将C#程式调用的那段T-SQL 直接放到SSMS 中运行,响应很快,运行一切正常。

    2.  检查系统逻辑没有任何问题。

    此情况往往持续几个小时以后,就一切恢复正常了。

    请问各位师兄师姐,有谁知道这是什么情况吗?如何及时地解决呢?

    PS:我怀疑是C#程式在连接SQL Server提交T-SQL时,发生连接超时或是SQL Server选用了差的执行Plan, 大家可有什么好办法去检查呢?

    2011年3月16日 7:02

全部回复

  • 2.  检查系统逻辑没有任何问题。

    这个可能是有问题,但是没有被发现。

    通常一个查询计划都是利用缓存,应该是每次都一样的。

    建议出问题的时候使用sql profiler抓一下正在执行的sql 看看执行时间,cpu,io等情况。以便进一步诊断。

     


    family as water
    2011年3月16日 10:20
  • Try convert ad hoc t-sql to stored procedure, sql handles sp execution plan much efficient than ad hoc's.
    2011年3月16日 13:40
  • 2.  检查系统逻辑没有任何问题。

    这个可能是有问题,但是没有被发现。

    通常一个查询计划都是利用缓存,应该是每次都一样的。

    建议出问题的时候使用sql profiler抓一下正在执行的sql 看看执行时间,cpu,io等情况。以便进一步诊断。

     


    family as water


    如此推断是系统逻辑的问题的话,那应该无论任何时候,通过SSMS直接执行或是外界提交T-SQL时,执行性能应该相差不大吧。

    奇怪的是,现在的情况是C#程式提交到SQL 实例时,偶尔就会有超时异常的情形,但是此时在SSMS直接运行则没有任何问题的...

    2011年3月17日 0:29
  • Thank you very much for everyone's great suggest.

    I think this issue maybe cause by any ad hoc  T-SQL 's poor performance Execute Plan have been used.

    Usually, These strange Issue occured on ad hoc T-SQL and Never occur on SP.

    Do you have any concern?

    2011年3月17日 0:36
  • Convert ad hoc queries to sp as many as possible as I said above. 
    2011年3月17日 2:27
  • Hi Rmiao,

    Thanks  a millions

    2011年4月6日 6:32