次の方法で共有


データベースのファイル グループの最適化

ファイルの入出力 (I/O) の競合は、多くの場合、運用環境の BizTalk Server 環境での制限要因 (ボトルネック) です。 BizTalk Server はデータベースを集中的に使用するアプリケーションであり、BizTalk Server で使用される SQL Server データベースは非常にファイル I/O を集中的に使用します。 このトピックでは、SQL Server のファイルとファイル グループの機能を最適に使用して、ファイル I/O 競合の発生を最小限に抑え、BizTalk Server ソリューションの全体的なパフォーマンスを向上させる方法について説明します。

概要

スループットが増加すると、すべての BizTalk Server ソリューションで最終的にファイル I/O の競合が発生します。 I/O サブシステム (ストレージ エンジン) は、リレーショナル データベースの主要なコンポーネントです。 通常、データベースの実装が成功するには、プロジェクトの初期段階で慎重に計画する必要があります。 この計画には、次の問題を考慮する必要があります。

  • RAID (独立ディスクの冗長アレイ) デバイスなど、使用するディスク ハードウェアの種類。

  • ファイルとファイル グループを使用してディスク上のデータをアソートする方法。 SQL Server でのファイルとファイル グループの使用の詳細については、「 データベース ファイルとファイル グループ」を参照してください。

  • データにアクセスするときのパフォーマンスを向上させるために最適なインデックス設計を実装する。 インデックスの設計の詳細については、「インデックスの 設計」を参照してください。

  • 最適なパフォーマンスを得るために SQL Server 構成パラメーターを設定する方法。 SQL Server の最適な構成パラメーターの設定の詳細については、「 サーバー構成オプション」を参照してください。

    BizTalk Server の主な設計目標の 1 つは、メッセージが失 われないように することです。 メッセージが失われる可能性を軽減するために、メッセージが処理されるときに、メッセージが MessageBox データベースに頻繁に書き込まれます。 メッセージがオーケストレーションによって処理されると、メッセージはオーケストレーション内のすべての永続化ポイントで MessageBox データベースに書き込まれます。 これらの永続化ポイントにより、MessageBox はメッセージと関連する状態を物理ディスクに書き込みます。 スループットが高い場合、この永続化によってディスクで大きな競合が発生し、ボトルネックとなる可能性があります。

    SQL Server のファイルとファイル グループの機能を最適に使用して、ファイル IO のボトルネックに効果的に対処し、BizTalk Server ソリューションの全体的なパフォーマンスを向上することが示されています。

この最適化は、すべての BizTalk Server データベースが適切にバックアップされた後にのみ、経験豊富な SQL Server データベース管理者が行う必要があります。 この最適化は、BizTalk Server 環境のすべての SQL Server コンピューターで実行する必要があります。

SQL Server ファイルとファイル グループを使用すると、複数のディスク、複数のディスク コントローラー、または RAID (独立したディスクの冗長アレイ) システム間でデータベースを作成できるため、データベースのパフォーマンスを向上させることができます。 たとえば、コンピューターに 4 つのディスクがある場合は、3 つのデータ ファイルと 1 つのログ ファイルで構成され、各ディスクに 1 つのファイルを含むデータベースを作成できます。 データにアクセスすると、4 つの読み取り/書き込みヘッドが同時にデータに並列でアクセスできます。 これにより、データベース操作が大幅に高速化されます。 SQL Server ディスクのハードウェア ソリューションの実装の詳細については、SQL Server オンライン ブックの データベース パフォーマンス に関するページを参照してください。

さらに、特定のファイル グループにテーブルを作成できるため、ファイルとファイル グループを使用してデータを配置できます。 これにより、特定のテーブルのすべてのファイル I/O を特定のディスクに転送できるため、パフォーマンスが向上します。 たとえば、使用頻度の高いテーブルは、1 つのディスク上にあるファイル グループ内のファイルに配置でき、データベース内のアクセス量の少ない他のテーブルは、2 番目のディスクにある別のファイル グループ内の別のファイルに配置できます。

ファイル I/O のボトルネックについては、「 データベース層のボトルネック」で詳しく説明されています。 ファイル I/O (ディスク I/O) がボトルネックであることを示す最も一般的なインジケーターは、"物理ディスク:平均ディスク キューの長さ" カウンターの値です。 "物理ディスク:平均ディスク キューの長さ" カウンターの値が、SQL Server を実行しているコンピューター上の特定のディスクに対して約 3 を超える場合、ファイル I/O がボトルネックである可能性があります。

ファイルまたはファイル グループの最適化を適用してもファイル I/O のボトルネックの問題が解決しない場合は、物理ドライブまたは SAN ドライブを追加してディスク サブシステムのスループットを向上させる必要がある場合があります。

このトピックでは、ファイルとファイル グループの最適化を手動で適用する方法について説明しますが、これらの最適化はスクリプト化することもできます。 サンプル SQL スクリプトは、 BizTalk Server メッセージ ボックス データベース ファイル グループ SQL スクリプトで提供されています。

このスクリプトは、特定の BizTalk Server ソリューションに対して SQL Server データベースによって使用されるファイル、ファイル グループ、およびディスク構成に対応するように変更する必要があることに注意してください。

既定の BizTalk Server 構成で作成されたデータベース

BizTalk Server の構成時に有効になっている機能に応じて、最大 13 個の異なるデータベースが SQL Server に作成され、これらのデータベースはすべて既定のファイル グループに作成されます。 ALTER DATABASE コマンドを使用して既定のファイル グループを変更しない限り、SQL Server の既定のファイル グループは PRIMARY ファイル グループです。 次の表に、BizTalk Server を構成するときにすべての機能が有効になっている場合に SQL Server で作成されるデータベースの一覧を示します。

BizTalk Server データベース

データベース 既定のデータベース名 説明
構成データベース BizTalkMgmtDb BizTalk Server グループ内の BizTalk Server のすべてのインスタンスの中央メタ情報ストア。
BizTalk MessageBox データベース BizTalkMsgBoxDb サブスクリプション述語を格納します。 これはホスト プラットフォームであり、各 BizTalk Server ホストのキューと状態テーブルを保持します。 メッセージ ボックス データベースには、メッセージとメッセージのプロパティも格納されます。
BizTalk Tracking データベース BizTalkDTADb BizTalk Server 追跡エンジンによって追跡されるビジネスデータと正常性監視データを格納します。
BAM 分析データベース BAMAnalysis ビジネス アクティビティの集計履歴データを保持する SQL Server Analysis Services データベース。
BAM スター スキーマ データベース BAMStarSchema OLAP 処理のビジネス アクティビティ監視から収集されたデータを変換します。 BAM 分析データベースを使用する場合は、このデータベースが必要です。
BAM プライマリ インポート データベース BAMPrimaryImport(BAMプライマリインポート) ビジネス アクティビティからのイベントを格納し、アクティビティ インスタンスの後に進行状況とデータを照会します。 このデータベースでは、リアルタイム集計も実行されます。
BAM アーカイブ データベース BAMArchive サブスクリプション述語を格納します。 BAM アーカイブ データベースは、BAM プライマリ インポート データベース内のビジネス アクティビティ データの蓄積を最小限に抑えます。
SSO データベース SSODB 受信場所の構成情報を安全に格納します。 SSO 関連アプリケーションの情報と、暗号化されたユーザー資格情報をすべての関連アプリケーションに格納します。
ルール エンジン データベース BizTalkRuleEngineDb リポジトリ:

- 関連するルールのセットであるポリシー。
- ボキャブラリ。ルール内のデータ参照に対して、わかりやすいドメイン固有の名前のコレクションです。
Human Workflow Services 管理データベース BizTalkHwsDb BizTalk ヒューマン ワークフロー サービスに必要な管理情報を格納します。
取引先管理データベース トータル・プロダクティブ・メンテナンス (TPM) ビジネス アクティビティ サービス (BAS) の取引先データを格納します。
トラッキング分析サーバー管理データベース BizTalkAnalysisDb ビジネスとヘルスモニタリングの OLAP キューブの両方を格納します。

データ ファイルとログ ファイルの分離

前述のように、既定の BizTalk Server 構成では、メッセージ ボックス データベースが既定のファイル グループ内の 1 つのファイルに配置されます。 既定では、MessageBox データベースのデータとトランザクション ログは、同じドライブとパスに配置されます。 これは、1 つのディスクを持つシステムに対応するために行われます。 1 つのファイル/ファイル グループ/ディスク構成は、運用環境では 最適ではありません 。 パフォーマンスを最適化するために、データ ファイルとログ ファイルを別々のディスクに配置する必要があります。

ログ ファイルがファイル グループに含まれることはありません。 ログ領域は、データ領域とは別に管理されます。

BizTalk Server データベースを配布する 80/20 ルール

ディスク I/O の競合またはデータベースの競合が原因で発生するほとんどの BizTalk Server ソリューションの競合の主な原因は、BizTalk Server MessageBox データベースです。 これは、単一メッセージ ボックスシナリオとマルチメッセージ ボックス シナリオの両方で当てはまります。 BizTalk データベースを配布する価値の最大 80% は、MessageBox データ ファイルとログ ファイルの最適化から派生するものと想定するのが妥当です。 以下で詳しく説明するサンプル シナリオでは、MessageBox データベースのデータ ファイルの最適化に重点を置きます。 その後、必要に応じて、他のデータベースに対してこれらの手順に従うことができます。 たとえば、ソリューションで広範な追跡が必要な場合は、追跡データベースを最適化することもできます。

メッセージ ボックス データベースにファイルを手動で追加する(ステップ バイ ステップ)

このセクションでは、メッセージ ボックス データベースにファイルを手動で追加する手順について説明します。 この例では、3 つのファイル グループを追加し、各ファイル グループにファイルを追加して、MessageBox のファイルを複数のディスクに分散します。

SQL Server 上の MessageBox データベースにファイルを手動で追加する

  1. SQL Server Management Studio を開き、[サーバーへの接続] ダイアログ ボックスを表示します。

    SQL Server ログイン画面

  2. [サーバーへの接続] ダイアログ ボックスの [サーバー名] 編集ボックスに、BizTalk Server メッセージ ボックス データベースを格納する SQL Server インスタンスの名前を入力し、[接続] をクリックして SQL Server Management Studio を表示します。 SQL Server Management Studio の [オブジェクト エクスプローラー ] ウィンドウで、[ データベース ] を展開して、この SQL Server インスタンスのデータベースを表示します。

    SQL Server 2005 Management Studio、オブジェクト エクスプローラー

  3. ファイルを追加するデータベースを右クリックし、[ プロパティ ] をクリックしてデータベースの [ データベースのプロパティ ] ダイアログ ボックスを表示します。

    [SQL Server 2005 データベースのプロパティ] ダイアログ ボックス

  4. [ データベースのプロパティ ] ダイアログ ボックスで、[ ファイル グループ ] ページを選択します。 BizTalkMsgBoxDb データベースの追加のファイル グループを作成するには、[ 追加 ] をクリックします。 次の例では、3 つのファイル グループが追加されています。

    SQL Server 2005、データベース へのファイル グループの追加

  5. [ データベースのプロパティ ] ダイアログ ボックスで、[ ファイル ] ページを選択します。

    ファイル グループに追加する追加のファイルを作成するには、[ 追加 ] をクリックし、[ OK] をクリックします。 MessageBox データベースが複数のディスクに分散されるようになりました。これにより、1 つのディスク構成よりもパフォーマンスが大幅に向上します。

    次の例では、前に作成したファイル グループごとにファイルが作成され、各ファイルが個別のディスクに配置されます。

    SQL Server 2005、ファイル グループ へのファイルの追加

BizTalk MessageBox データベースにファイル グループとファイルを追加するためのサンプル SQL スクリプト

このガイドには、BizTalk Server MessageBox データベースにファイル グループとファイルを追加するための SQL スクリプトが含まれています。

SQL Server はログ ファイルに順番に書き込むため、SQL Server データベースに対して複数のログ ファイルを作成することで実現されるパフォーマンス上の利点はありません。

このスクリプトを実行するには、次の手順に従います。

  1. SQL Server Management Studio を開き、[サーバーへの接続] ダイアログ ボックスを表示します。

  2. [サーバーへの接続] ダイアログ ボックスの [サーバー名] 編集ボックスに、BizTalk Server MessageBox データベースを格納する SQL Server インスタンスの名前を入力し、[接続] をクリックして [SQL Server Management Studio] ダイアログ ボックスを表示します。

  3. SQL Server Management Studio で、[ ファイル ] メニューをクリックし、[ 新規] をポイントし、[ 現在の接続でクエリ ] をクリックして SQL クエリ エディターを起動します。

  4. BizTalk Server MessageBox データベース ファイル グループの SQL スクリプトのサンプル スクリプトをクエリ エディターにコピーします。

  5. BizTalk Server 環境に合わせてスクリプトのパラメーターを編集し、スクリプトを実行します。

    スクリプト作成の利点は、スクリプトで複数のタスクをすばやく実行し、正確に再現でき、人為的ミスの可能性を減らすことです。 スクリプト作成の欠点は、正しく記述されていないスクリプトを実行すると、BizTalk Server データベースを最初から再構成する必要がある重大な問題を引き起こす可能性があることです。

Von Bedeutung

運用環境で実行する前に、このガイドのサンプル スクリプトなどの SQL スクリプトを徹底的にテストすることが最も重要です。

こちらもご覧ください

データベースパフォーマンスの最適化