sp_tables调用花费更多时间导致阻塞

时间:2010-08-10 10:14:18

标签: sql-server database perl dbi

我们可以看到,在我们的perl程序运行期间,基本上连接到SQLserver以插入/删除/更新数据,下面的调用非常频繁 sp_tables @table_name='NOXXTABLE'。我们看到,对于许多SPID来说,呼叫很多次都会发生。

在SQLserver中运行sp_tables @table_name='NOXXTABLE'时,我们可以看到它没有返回任何行。它通常在几毫秒内完成。

但是在分析之后,当我们检查阻塞SPID的特定SQLText(sp_tables @table_name='NOXXTABLE')的运行时间时,它在0秒到1分钟之间变化,并且在同一个SPID中非常频繁地被调用。对于许多SPID而言也是如此,这些SPID再次对sp_tables进行了多次调用,每次调用花费了大量时间。

有没有解决方案可以解决这个问题?

1 个答案:

答案 0 :(得分:4)

NOXXTABLE由DBD :: ODBC的ping方法使用。如果用DBD :: ODBC调用DBI的ping方法,它会执行一个表('','','NOXXTABLE','')。如果你想减少调用ping或者使用更适合你系统的其他代码覆盖DBD :: ODBC的ping方法。