変更しない SQL Server の設定
BizTalk Serverの運用準備手順中にSQL Serverを設定するときは、次の設定を変更しないでください。
SQL Server の並列処理の最大限度
BizTalk Server MessageBox データベースをホストするSQL Server インスタンスのBizTalk Serverの構成中に、並列処理の最大次数 (MDOP) が "1" に設定されます。 これは、SQL Serverインスタンス レベルの設定です。 この設定は、"1" の値から変更しないでください。 これを "1" 以外に変更すると、BizTalk Serverストアド プロシージャとパフォーマンスに大きな悪影響を及ぼす可能性があります。 SQL Serverのインスタンスの並列処理設定を変更すると、SQL Server インスタンスで実行されている他のデータベース アプリケーションに悪影響が及ぶ場合は、BizTalk Server データベースのホスト専用の SQL Server の別のインスタンスを作成する必要があります。
通常、並列クエリは、バッチ処理と意思決定サポートワークロードに最適です。 これらは通常、並列で実行される短くて高速なクエリが多数あるトランザクション処理環境では望ましくありません。 さらに、MDOP 設定を変更すると、クエリ プランが変更され、クエリ パフォーマンスが低下したり、BizTalk Serverクエリでデッドロックが発生したりする場合があります。
BizTalk Server ストアド プロシージャは、クエリ オプティマイザーが多くの作業を行い、プランを変更しないようにするために、可能な限り適切な結合とロック ヒントを提供します。 これらのストアド プロシージャは、クエリ オプティマイザーが可能な限り画像から取り出されるようにクエリを構築することで、一貫したクエリ実行を提供します。
メッセージ ボックス データベースのSQL Server統計
BizTalk Server MessageBox データベースの作成時に、既定で次のオプションがオフになります。
統計の自動作成
統計の自動更新
MessageBox データベースでこれらのオプションを有効にしないでください。 [統計の自動作成] オプションと [統計の自動更新] オプションを有効にすると、特に負荷の高い環境では、望ましくないクエリ実行の遅延が発生する可能性があります。
さらに、BizTalk Serverストアド プロシージャには、クエリで指定された正確な結合とロック ヒントがあります。 これは、SQL ServerのBizTalk Serverクエリで最適なクエリ プランが使用されるようにするために行われます。 クエリの分布と予想される結果は既知です。返される行のおおよその数は既知です。 統計は一般に必要ありません。
詳細については、次の記事を参照してください。
BizTalk Serverで BizTalkMsgBoxDb データベースに接続するときに、ブロック、デッドロック状態、またはその他のSQL Serverの問題。
MessageBox データベースに対する変更
MessageBox データベースは、Microsoft 以外のアプリケーション ソース コードのように扱う必要があります。 つまり、テーブル、インデックス、ストアド プロシージャ、およびほとんどのSQL Serverデータベース設定を変更して、MessageBox データベースを "微調整" しないでください。 詳細については、BizTalk Core エンジンの WebLog の 「MessageBox データベース サーバーで実行できる操作と実行できない操作」を参照してください。
データベース インデックスの再構築と最適化の既定の設定
BizTalk Serverでは、インデックスの最適化はサポートされていません。 "DBCC INDEXDEFRAG" と "ALTER INDEX ... REORGANIZE ..." は、ページ ロックを使用するためサポートされていません。これにより、BizTalk Serverでブロックやデッドロックが発生する可能性があります。 BizTalk Serverでは、データベース インデックスの再構築 ("DBCC DBREINDEX" と "ALTER INDEX ...REBUILD ...") ですが、BizTalk Serverがデータを処理していない場合にのみ、メンテナンス期間中に行う必要があります。 データの処理中BizTalk Serverインデックスの再構築はサポートされていません。
詳細については、「BizTalk Serverで BizTalkMsgBoxDb データベースに接続するときのブロック、デッドロック状態、またはその他のSQL Serverの問題」を参照してください。
インデックスの断片化は、インデックス スキャンを実行する DSS システムや OLTP システムの場合ほど、BizTalk Serverのパフォーマンスの問題ではありません。 BizTalk Serverでは、非常に選択的なクエリと更新が行われ、ストアド プロシージャBizTalk Serverテーブルスキャンやインデックススキャンは発生しません。