SQL Server 2012 データベースにアクセスするサード パーティ製アプリケーション[Microsoft][ODBC SQL Server Driver]Query timeout expired
を約 20 分間実行すると、エラーが発生します。
これは、アプリケーションがエラーを受け取り始めた後にデータベースに表示されるものです。
SPID 102 は、上記のクエリには表示されません。同じプロセスの同じアプリケーションからの別の接続です。以下のスクリーンショットで、この詳細をキャプチャすることができました。このスクリーンショットの一番上の行にあるものです。スクリーンショットを撮るときにスクロールバーが右に移動したことをお詫びします。
AutoShrink
TRUE
これが発生したとき、このデータベースでは に設定されていました。
次のようになります。
後で開始されたサード パーティ製アプリケーションからの複数の接続が SPID 27 で待機しています。これは AUTOSHIRNK コマンドです。
SPID 27 は、同じサードパーティ アプリケーションからの別の接続である SPID 102 を待機しています。
質問:
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 上のデータベースから実行されている場合に正常に機能します。