访问 SQL Server 2012 数据库的第 3 方应用程序[Microsoft][ODBC SQL Server Driver]Query timeout expired
在执行约 20 分钟后出现错误。
这是我在应用程序开始收到错误后在数据库中看到的内容:
SPID 102 未显示在上面的查询中。它是来自同一应用程序的同一进程的另一个连接。我能够在下面的屏幕截图中捕捉到一些细节。它是此屏幕截图中最顶行的那个。抱歉,在截屏时滚动条向右移动。
AutoShrink
TRUE
发生这种情况时在此数据库上设置为。
看起来像:
来自稍后启动的第 3 方应用程序的多个连接正在 SPID 27 上等待 - 这是一个 AUTOSHIRNK 命令
SPID 27 正在等待 SPID 102,这是来自同一个第 3 方应用程序的另一个连接
问题:
有什么方法可以判断自创建以来与 SPID 27 的连接
AutoShirnk
是否设置为TRUE
在数据库上?如果是这样,为什么它在 SPID 102 上等待,为什么其他连接(83、85、86、88 和 90)在 27 上等待?
根据下面链接中的 TechNet 文章,AutoShrink 不应该对数据库上的任何活动产生影响
如果数据库将 AUTO_SHRINK 选项设置为 ON,则数据库引擎会减小数据库中文件的大小。此活动在后台发生,不会影响数据库中的任何用户活动。
笔记:
这当前在发生此问题的 SQL Server 2012 SP1 上运行。
当应用程序从 SQL Server 2008 SP3 上的数据库运行时,应用程序中的此过程可以正常工作。