9017 情報メッセージが SQL Server のインスタンスを開始または復元またはデータベースをアタッチしたときに記録されます。

現象

Microsoft SQL Server のインスタンスを起動またはアタッチまたは復元するデータベース、9017 の情報メッセージ、次のようなが SQL Server エラー ログに記録されます。

データベースのdbNameは、 nの仮想ログ ファイルは、過剰なを超えています。多くの仮想ログ ファイルには、スタートアップに時間とバックアップ時間が生じます。ログの圧縮と、さまざまな拡張の増分を使用して、仮想ログ ファイルの数を減らすことを検討してください。

多くの仮想ログ ファイルには、データベースの復旧時間に悪影響を与えることができます。

さらに、レプリケーションまたはデータベース ミラーリングのテクノロジーを使用して、お客様の環境で、これらのテクノロジのパフォーマンスの問題がわかります可能性があります。

原因

この問題は、ログ ファイルのFILEGROWTH パラメーターの小さい値を指定する場合に発生します。

SQL Server データベース エンジンは、いくつかの仮想ログ ファイル (Vlf) に内部的にそれぞれの物理ログ ファイルを分割します。SQL Server 2008 R2 Service Pack 2 およびそれ以降のバージョンとデータベース (SQL Server のインスタンスの開始のため、または、接続またはデータベースの復元のため) を起動し、1,000 人以上の Vlf を SQL Server 2008 R2 では、1万人以上の VLF を SQL Server 2012 では、ログに記録される新しいメッセージ (9017) が導入されました。

注: SQL Server 2012 では、このメッセージが出力されるデータベースには、10,000 の Vlf が実際のメッセージが報告されるエラー ログに正しく記述されて「1000 VLF」です。基本的には、警告は、10,000 の Vlf の後に発生します。ただし、メッセージは、1,000 の Vlf を報告します。この問題は、将来のリリースで修正されます。

どのように Vlf の数が増加する可能性がレプリケーションまたはデータベース ミラーリングの構成でパフォーマンスの問題に関する詳細については、「関連情報」セクションを参照してください。

解決策

この問題を解決するには、次の手順を実行します。
  1. DBCC SHRINKDBを使用するか、SQL Server Management Studio を使用して、トランザクション ・ ログを削減します。
  2. 頻繁に自動拡張を避けるために値を大きくするトランザクション ログ ファイルのサイズを大ききます。詳細については、SQL Server Books Online の web サイトで次のトピックを参照してください。

  3. 現在構成されているよりも大きい値に上限のパラメーターを増やします。これは、データベースとログ ファイルの増加率はどのくらいの頻度の活動に基づいている必要があります。

さらに、現在実行している SQL Server のバージョンに応じて、次の修正プログラムをインストールするかを検討することをお勧めします。


詳細

データベース内の VLF のセグメントの数を確認する方法

データベースの最も早いとトランザクション ログのバックアップの最新のログ シーケンス番号 (Lsn) との違いを見つけることによってデータベースの VLF のセグメントの数を見つけることができます。

次のようなメッセージ、SQL Server エラー ログを確認することによってトランザクション ログのバックアップの LSN をご覧ください。

{ログがバックアップされます。データベース: mydbnamecreation_date_(time):日付(時刻)、最初の LSN: 1: 5068:70、最後の LSN: 1: 5108:1、ダンプ デバイス数: 1 の場合、デバイス情報: (ファイル = 1、タイプ = ディスク: {'C:\folder\logbackup1.trn'})。このメッセージは情報提供を目的としています。ユーザー操作は不要です。

注: このメッセージでは、トランザクション ログの LSN は、 1です。(の最初のコロンの後に最初の数には「LSN: 1:5068:70。")

これを行うには、以下の手順を実行します。
  1. SQL エラー ログに、データベースの最も古いトランザクション ログのバックアップの LSN を検索 (たとえば、LSN: 1:5108:1)。
  2. SQL エラー ログにトランザクション ログ バックアップの最新の LSN を検索 (たとえば、LSN:10、235: 5108: 1)。
  3. VLF のセグメントの数は、最新の LSN と最も小さい LSN の違い (10,235-1 はこの例では、= 10,234)。

Vlf のレプリケーションでは、多くの効果

多くのログ ファイルは、ログ読み取りプロセスがレプリケーション用にマークされたトランザクションのすべての仮想ログ ファイルをスキャンする必要がありますので、レプリケーションを影響します。Sp_replcmdsストアド プロシージャのパフォーマンスを追跡して、この動作を表示できます。Sp_replcmdsには、仮想ログ ファイルをスキャンして、レプリケーション用にマークされたトランザクションを読み取るためのプロシージャが格納されている、ログ リーダーの処理の使用詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。

949523トランザクション レプリケーションの待機時間が高い SQL Server 2005 で、[初期サイズ] プロパティの値と、自動拡張プロパティの値が小さいとき

データベース ミラーリングには、Vlf の多くの効果

多くのログ ファイルがデータベース ・ ミラーリングを影響します。詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。

2455009の修正: SQL Server 2005、SQL Server 2008、または SQL Server 2008 R2 でトランザクション ・ ログ内の多くの Vlf がある場合にデータベースをリカバリする場合のパフォーマンスが低下

プロパティ

文書番号:2882905 - 最終更新日: 2017/02/01 - リビジョン: 1

Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition

フィードバック