訪問SQL Server 2012數據庫的第三方應用程序在執行大約20分鐘後出現[Microsoft][ODBC SQL Server Driver]Query timeout expired
錯誤。SQL Server查詢超時
這是我的數據庫上看到的應用程序開始接收錯誤後:
SPID 102沒有在上面的查詢所示。這是同一過程的另一個來自同一應用程序的連接。我能夠在下面的屏幕截圖中捕捉到這些細節。它是此截圖中最上面一行的一個。道歉,截圖時滾動條被移動到右側。
AutoShrink
設置爲TRUE
此數據庫上時發生這種情況。
它看起來像:
從後來開始對第三方應用的幾個連接正在等待的SPID 27 - 這是一個AUTOSHIRNK命令
SPID 27正在等待SPID 102是從同一個第三方應用程序
問題的另一個方面:
是否有任何方法可以判斷數據庫上自
AutoShirnk
設置爲TRUE
以來是否創建了與SPID 27的連接?如果是這樣,爲什麼它在SPID 102上等待,爲什麼其他連接(83,85,86,88和90)等待27?
根據下面的鏈接TechNet文章,自動收縮應該沒有數據庫
上的任何活動的影響,如果數據庫的AUTO_SHRINK選項設置爲ON,數據庫 引擎減小數據庫中文件的大小。此活動 發生在後臺,並且不影響數據庫中的任何用戶活動 。
注:
這是目前SQL Server上運行,此問題將發生2012 SP1。
當應用程序在SQL Server 2008 SP3上運行數據庫時,應用程序中的此進程正常工作。
你真的不應該使用自動收縮反正。 – DavidG 2014-10-01 13:03:17
他們應該將AutoShrink重命名爲AutoCrippleDatabase。關掉這場災難,這個問題就會消失。 – 2014-10-01 13:32:10
使用DMV來查看查詢文本並在運行時進行計劃..'sys.dm_exec_query_stats'交叉應用'sys.dm_exec_query_plan'交叉應用'sys.dm_exec_sql_text' – Tak 2014-10-01 14:39:03