現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012 または SQL Server 2014 および Microsoft SQL Server Data Tools (SSDT) を使って、SQL Server Integration Services (SSIS) パッケージを設計します。
-
データフロータスクでは、OLE DB source、ADO.NET source、または ODBC ソースなどのソースコンポーネントを使用して、 データアクセスモード を SQL コマンド に設定し、[コマンド] ボックスにクエリを入力します。
-
[ プレビュー ] をクリックして、クエリの結果を確認します。
このシナリオでは、プレビューされているコマンドが30秒より長く実行され、デザイナーで失敗します。 さらに、"クエリのタイムアウトが終了しました" というエラーが表示されます。
原因
この問題は、SSIS デザイナーのプレビュー機能で、 CommandTimeout のしきい値が30秒としてハードコーディングされているために発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム3 /en-us/help/2984923
SQL Server 2012 SP2 の累積更新プログラム1 /en-us/help/2976982
SQL Server 2012 SP1 の累積更新プログラム10 /en-us/help/2954099
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
注:
-
この修正プログラムを適用する前に、すべての SSIS コンポーネントのデータプレビューで30秒以内にタイムアウトの設定を修正しました。
-
この修正プログラムを適用した後、次の操作を行います。
-
ADO.NET source コンポーネントと OLE DB ソースコンポーネントには、既にプロパティ CommandTimeoutがあります。 このプロパティは、データプレビューで使用されます。
-
データプレビュー機能を備えているが、 CommandTimeout プロパティを持っていないその他のすべてのコンポーネントの場合:
-
DWORD 値 DataPreviewTimeout がシステムレジストリキーにある場合は、次の操作を行います。\\HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SSIS\Preferences SSIS では、プレビュー中にその値がタイムアウトとして使用されます。
-
DWORD 値 DataPreviewTimeoutが存在しない場合でも、SSIS は30秒を使用します。
-
-
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。