現象
SQL Server 2017 を使用していて、多くの SQL Server Integration Services (SSIS) パッケージがあるとします。SSIS またはPower BI レポートは、次の接続タイムアウト エラーで散発的に失敗することがあります。
"_Main_XXXXX:Error: SSIS エラー コード DTS_E_OLEDBERROR。 OLE DB エラーが発生しました。 エラー コード: 0x80004005。
OLE DB レコードを使用できます。 ソース: "Microsoft SQL Server ネイティブ クライアント 11.0" Hresult: 0x80004005説明: "ログイン タイムアウトの有効期限が切れています"。
OLE DB レコードを使用できます。 ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "ログイン応答の遅延のためにログイン プロセスを完了できません"。
OLE DB レコードを使用できます。 ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "TCP Provider: Timeout error [258]. "."
それ以外の場合、問題は SSIS またはPower BI レポートのみに限定されません。 SQL Serverとの接続中に、アプリケーションがパフォーマンスの問題やタイムアウトに達する可能性があります。
この修正プログラムでは、SYS.DM_OS_BUFFER_DESCRIPTORS DMV のerror_code と op_history という 2 つの新しい列 が 導入されています。 Error_code 列は、問題のバッファーを設定する最新の試行中のエラー情報を表します。 Op_history 列は、ビット形式のバッファーの操作履歴を表します (操作あたり 4 ビット、合計操作数 16、最後の 4 ビットは最新の操作を表し、時間が進むにつれて左にシフトします)。
注 この修正では、バッファー ページの設定中に表示される特定のエラーは解決されません。 新しい情報を使用して追加のトラブルシューティングを実行できるように、バッファーのエラー コードと操作に関する情報のみが公開されます。
根本原因
タイムアウトとパフォーマンスの問題は本質的に一般的であり、根本原因が多い可能性があります。 この特定のケースでは、データ ファイルからデータ ページを読み取り、メモリ バッファー (データ ページのメモリ表現) を設定しようとすると、多くのエラーと再試行が発生します。 バッファーの作成エラーの根本原因は、公開されていないバッファーを設定しようとしているときに、基になるエラー コードとして明確に識別されません。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
解決方法
この問題は、SQL Serverの次の累積的な更新プログラムで修正されています。
SQL Serverの累積的な更新プログラムについて:
SQL Serverの各新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
参考資料
Microsoft がソフトウェア更新プログラムの説明に使用する用語について説明します。