構成後のデータベースの最適化
構成前データベースの最適化 2 の推奨事項に従うだけでなく、BizTalk Serverがインストールされ、BizTalk Server データベースが構成された後に、SQL ServerでBizTalk Serverデータベースのパフォーマンスを最適化するには、いくつかの手順に従う必要があります。 このトピックでは、これらの最適化の一覧を提供します。
特定の MessageBox データベース テーブルに 'text in row' テーブル オプションを設定することを検討してください
SQL Serverは、text 型、ntext 型、またはディメンションがデータ ページ (8 Kb) よりも小さい画像データのフィールドの内容をデータ行に格納する必要があることを宣言するために、行内のテキストと呼ばれるテーブル オプションを提供します。 BizTalkMsgBoxDb テーブル (パーツ テーブル、スプール テーブル、および DynamicStateInfo テーブル) でこのオプションを設定すると、小さなコンテキストを持つ小さなメッセージと、永続化サイズが小さいオーケストレーションを処理するときに、メッセージのスループットを向上させることができます。
パーツ テーブル: メッセージ サイズが 8 kb のデータ ページのサイズよりも小さい場合、Parts テーブルに行テーブルのテキスト オプションを適用すると、パフォーマンスがBizTalk Server向上する可能性があります。 Parts テーブルには、次のフィールドが含まれています。
ImgPart: メッセージパーツまたはメッセージパーツフラグメントを含みます。
ImgPropBag: メッセージ パーツのプロパティ バッグが含まれています。
これにより、MessageBox に対してループ処理を行う場合、BizTalk ホスト内で実行されているメッセージ エージェントは、少量のページを読み取ることで Parts テーブルからメッセージのバッチを取得できます。 この手法は、特定のシナリオとハードウェア構成に応じて、SQL ServerとBizTalk Serverの両方で CPU 使用率を削減し、待機時間とスループットの面で大幅に向上させることができます。
スプール テーブル: メッセージ コンテキストの平均サイズが 8 kb 未満の場合、Spool テーブル で行テーブルのテキスト オプションを有効にすると、メッセージ ボックスからメッセージを読み取る際のアクセス数とそのコンテキストを減らすことができます。 このオプションを Spool テーブルに適用するには、不要なコンテキスト プロパティと識別フィールドを排除して、メッセージ コンテキストのサイズを 8 Kb 未満に抑える必要があります。
DynamicStateInfo テーブル これらのテーブルには、ホストごとに 1 つずつ、実行中に永続化ポイントが発生したときにバイナリシリアル化されたオーケストレーション状態を含む imgData という種類のイメージのフィールドが含まれています。 ホスト HostA 内のオーケストレーションの内部状態が非常に小さいため、シリアル化後のサイズが 8 kb 未満の場合、 行内のテキスト 手法をDynamicStateInfo_HostA テーブルに正常に適用できます。 そのため、オーケストレーションの内部状態はできるだけ小さくすることをお勧めします。 この手法により、永続化ポイントの場合にオーケストレーションの内部状態をシリアル化、永続化、逆シリアル化、復元するために XLANG エンジンが費やす時間を大幅に短縮できます。
ラボ テストでは、次の設定を使用しました。
EXEC sp_tableoption N'Spool','text in row', '6000'
EXEC sp_tableoption N'Parts'、'text in row'、'6000'
BizTalk Server データベースの自動拡張設定をパーセンテージ値ではなく固定値に定義する
SQL Serverデータベースの自動拡張はブロック操作であり、データベースのパフォーマンスBizTalk Server妨げます。 そのため、データベースの自動拡張の発生を最小限に抑えるには、事前にBizTalk Serverデータベースに十分な領域を割り当てることが重要です。
データベースの自動拡張は、パーセンテージではなく、固定のメガバイト数に設定する必要があります (ファイルの拡張を メガバイト単位で指定します)。 これは、自動拡張が発生した場合に、測定された方法で行われるようにする必要があります。 これにより、データベースが過剰に増加する可能性が低くなります。 BizTalk Server データベースの増加増分は、通常、100 MB 以下にする必要があります。
データベースBizTalk Serverサイズを複数のデータ ファイルで適切なサイズに事前にサイズ設定する
SQL Serverがファイルのサイズを大きくする場合は、使用する前に最初に新しい領域を初期化する必要があります。 これは、空のページで新しい領域を埋めるブロッキング操作です。 Windows Server 2003 以降で実行されているSQL Server 2005 以降では、ファイルの瞬時初期化がサポートされます。 この機能により、ファイル拡張操作のパフォーマンスへの影響が大幅に軽減されます。 詳細については、「 データベースのファイルの瞬時初期化」を参照してください。ファイルの瞬時初期化を有効にする手順について説明します。
次の一覧では、ラボ テストで使用されるBizTalk Serverデータベース構成について説明します。
BizTalk DTADB (BizTalk Tracking データベース ファイル): ファイル サイズが 2048 MB で、サイズが 100 MB、ログ ファイルが 1024 MB、サイズが 100 MB のデータ ファイル。
BizTalkMgmtdb (BizTalk Management データベース ファイル): ファイル サイズが 512 MB で、サイズが 100 MB、ログ ファイルが 512 MB で、サイズが 100 MB のデータ ファイル。
SSODB: ファイル サイズが 512 MB で、サイズが 100 MB、ログ ファイルが 512 MB で、サイズが 100 MB のデータ ファイル。
BizTalkMsgBoxDb (BizTalk MessageBox データベース): 8 つのデータ ファイルで、それぞれ 100 MB の拡張で 2 GB のファイル サイズ、100 MB の拡張で 20 GB のログ ファイルを持ちます。 BizTalk MessageBox データベースは最もアクティブであるため、ディスク I/O 競合に関する問題の可能性を減らすために、データ ファイルとトランザクション ログ ファイルを専用ドライブに配置することをお勧めします。 ラボ環境では、次のそれぞれに 1 つのドライブを使用しました。
MessageBox データ ファイル
MessageBox トランザクション ログ ファイル
次の SQL スクリプトを使用すると、最初にドライブ J (J:\BizTalkMsgBoxDb.mdf) のデータ ファイルと、ドライブ K (K:\BizTalkMsgBoxDb_log 上のログ ファイルを含む BizTalkMsgBoxDb のサイズを事前に設定できます。LDF:
重要
このスクリプトは「現状のまま」で提供され、デモまたは教育目的のみを目的としており、ご自身の責任で使用されます。 このスクリプトの使用は Microsoft ではサポートされていません。Microsoft は、このスクリプトの適合性について保証しません。
EXEC dbo.sp_helpdb BizTalkMsgBoxDb
ALTER DATABASE BizTalkMsgBoxDb MODIFY FILE (NAME = BizTalkMsgBoxDb , FILENAME = 'J:\BizTalkMsgBoxDb.mdf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_2 , FILENAME = 'J:\BizTalkMsgBoxDb_2.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_3 , FILENAME = 'J:\BizTalkMsgBoxDb_3.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_4 , FILENAME = 'J:\BizTalkMsgBoxDb_4.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_5 , FILENAME = 'J:\BizTalkMsgBoxDb_5.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_6 , FILENAME = 'J:\BizTalkMsgBoxDb_6.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_7 , FILENAME = 'J:\BizTalkMsgBoxDb_7.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
ALTER DATABASE BizTalkMsgBoxDb ADD FILE (NAME = BizTalkMsgBoxDb_8 , FILENAME = 'J:\BizTalkMsgBoxDb_8.ndf' , SIZE = 2GB , FILEGROWTH = 100MB)
GO
ALTER DATABASE BizTalkMsgBoxDb MODIFY FILE (NAME = BizTalkMsgBoxDb_log , FILENAME = 'K:\BizTalkMsgBoxDb_log.LDF', SIZE = 20GB , FILEGROWTH = 100MB)
GO
バックアップ BizTalk Server出力ディレクトリを専用 LUN に移動する
Backup BizTalk (完全バックアップとログ バックアップ) という名前の出力ディレクトリを専用 LUN に移動します。
Backup BizTalk Server という名前のジョブを編集して、専用 LUN をポイントします。
最初の手順では、ジョブの読み取り場所とは異なるディスクへの書き込みを行うことで、ジョブの実行中のディスク I/O 競合が軽減されます。 詳細については、「バックアップ BizTalk Server ジョブの構成」を参照してください。
BizTalk Server SQL エージェント ジョブが実行されていることを確認する
BizTalk Serverでは、いくつかのSQL Server エージェント ジョブが、サーバーの動作と正常を維持する重要な機能を実行します。 これらのジョブの正常性を監視し、エラーなしで実行されていることを確認します。 BizTalk Serverパフォーマンスの問題の一般的な原因の 1 つは、BizTalk Server SQL エージェント ジョブが実行されていない場合、MessageBox データベースと Tracking データベースがオフになっている可能性があるということです。 BizTalk Server SQL エージェント ジョブが問題なく実行されるようにするには、次の手順に従います。
SQL Server エージェント サービスが実行されていることを確認します。
BizTalk ServerによってインストールされたSQL Server エージェント ジョブが有効になり、正常に実行されていることを確認します。 BizTalk Server SQL Server エージェント ジョブは重要です。ジョブが実行されていない場合、システムのパフォーマンスは時間の経過と同時に低下します。
BizTalk Server SQL Server エージェント ジョブがタイムリーに完了していることを確認します。 最新バージョンの Microsoft System Center Operations Manager を設定して、ジョブを監視します。 特定のジョブに特有のスケジュールに注意する必要があります。
MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb ジョブは、既定で継続的に実行されます。 監視ソフトウェアでは、このスケジュールを考慮し、警告を生成しないようにする必要があります。
MessageBox_Message_Cleanup_BizTalkMsgBoxDb ジョブは有効またはスケジュールされていませんが、MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb ジョブによって 10 秒ごとに開始されます。 そのため、このジョブを有効にしたり、スケジュールしたり、手動で開始したりしないでください。
SQL Server エージェント サービスのスタートアップの種類が正しく構成されていることを確認します。 SQL Server エージェント サービスが Windows Server クラスター上のクラスター リソースとして構成されていない限り、SQL Server エージェント サービスが [スタートアップの種類] の [自動] で構成されていることを確認します。 SQL Server エージェント サービスがクラスター リソースとして構成されている場合は、クラスター サービスによってサービスが管理されるため、[スタートアップの種類] を [手動] として構成する必要があります。
追跡データの消去とアーカイブを構成する
追跡データの消去とアーカイブを正しく設定するには、次の手順に従います。
DTA Purge and Archive という名前の SQL エージェント ジョブが正しく構成され、有効になり、正常に完了していることを確認します。
詳細については、「 DTA 消去ジョブとアーカイブ ジョブを構成する」を参照してください。
受信追跡データが生成されるのと同じ速度で、ジョブで追跡データを消去できることを確認します。
詳細については、「 持続可能な追跡の最大スループットの測定」を参照してください。
論理的な消去とハード 消去のパラメーターを確認して、データを最適な期間保持していることを確認します。
詳細については、「 BizTalk 追跡データベースのアーカイブと消去」を参照してください。
古いデータのみを消去する必要があり、最初にアーカイブする必要がない場合は、SQL エージェント ジョブを変更して 、dtasp_PurgeTrackingDatabase という名前のストアド プロシージャを呼び出します。
詳細については、「 BizTalk 追跡データベースからデータを消去する」を参照してください。
DTC ログ ファイル のディスク I/O 競合を監視して削減する
分散トランザクション コーディネーター (DTC) ログ ファイルは、トランザクション集中型環境でディスク I/O ボトルネックになる可能性があります。 これは、SQL Server、MSMQ、MQSeries などのトランザクションをサポートするアダプターを使用する場合、またはマルチメッセージ ボックス環境で使用する場合に特に当てはまります。 トランザクション アダプターは DTC トランザクションを使用し、マルチメッセージ ボックス環境では DTC トランザクションを広範囲に使用します。 DTC ログ ファイルがディスク I/O のボトルネックにならないようにするには、DTC ログ ファイルがSQL Server データベース サーバー上に存在するディスクのディスク I/O 使用率を監視する必要があります。 DTC ログ ファイルが存在するディスクのディスク I/O 使用率が過剰になる場合は、DTC ログ ファイルをより高速なディスクに移動することを検討してください。 SQL Serverがクラスター化されている環境では、ログ ファイルが既に共有ドライブ上にあるため、これはそれほど問題になりません。これは、複数のスピンドルを備えた高速 SAN ドライブである可能性が高くなります。 それでもディスク I/O の使用状況を監視する必要があります。 これは、クラスター化されていない環境や、DTC ログ ファイルが他のディスク集中型ファイルと共有ディスク上にある場合にボトルネックになる可能性があるためです。
MessageBox データベースと Tracking データベースを分離する
BizTalk MessageBox データベースと BizTalk Tracking データベースは最もアクティブであるため、ディスク I/O 競合の問題の可能性を減らすために、これらの各データ ファイルとトランザクション ログ ファイルを専用ドライブに配置することをお勧めします。 たとえば、MessageBox データベース ファイルと BizTalk Tracking データベース ファイルには 4 つのドライブが必要です。次のそれぞれに 1 つのドライブがあります。
MessageBox データ ファイル
MessageBox トランザクション ログ ファイル
BizTalk Tracking (DTA) データ ファイル
BizTalk Tracking (DTA) トランザクション ログ ファイル
BizTalk MessageBox データベースと BizTalk Tracking データベースを分離し、異なる物理ディスク上のデータベース ファイルとトランザクション ログ ファイルを分離することは、ディスク I/O 競合を減らすためのベスト プラクティスと見なされます。 ディスク I/O を可能な限り多くの物理スピンドルに分散してみてください。 BizTalk Tracking データベースを専用のSQL Serverに配置することで、ディスク I/O の競合を減らすこともできますが、データ ファイルとトランザクション ログ ファイルの分離については、上記のプラクティスに従う必要があります。
BizTalk Server データベースのファイル グループを最適化する
「データベース 2 のファイル グループの最適化」および「データベース パフォーマンスの最適化」の手順に従って、BizTalk Server データベース用の追加のファイル グループとファイルを作成します。 これにより、単一のディスク構成からBizTalk Server データベースのパフォーマンスが大幅に向上します。