最高のパフォーマンスを引き出すために推奨される事項のリストを示します。テストさまざまな要素が、同期システムのスループットに総合的な影響を及ぼします。使用する統合データベースのタイプ統合データベースを実行するハードウェアすべての非同期アクティビティを含む、統合データベースにおけるアクティビティ統合データベースのスキーマテストは非常に重要です。配備する前に、運用環境で使用するのと同じハードウェアとネットワークを使用してテストを実行してください。リモートの数、同期頻度、データ量も同じにしてテストを実行します。(mlreplay)を参照してください。テストでは、以下のパフォーマンスのヒントを参考にしてください。同期スクリプトでは、競合を回避し、同時実行性を最大化します。スクリプトが、テーブル内のカラムを増分してダウンロードの合計数をカウントするとします。複数のユーザが同時に同期を行う場合、このスクリプトによって効果的にダウンロードが直列化されます。各スクリプトでも同じカウンタが有効です。これらのスクリプトはコミットの直前に呼び出され、データベースのロックは短時間ですむからです。ごとにカウントし、後でクエリによって合計数を取得する方法をおすすめします。競合を参照してください。同期のトランザクション構造については、同期処理のトランザクションを参照してください。サーバにより、ネットワークストリームを同時に処理する複数のネットワークワーカスレッドがサポートされます。集約型ネットワークストリームオプションを使用しているときは、パフォーマンスが向上することがあります。つのネットワークストリームスレッド上でアクティブにできます。オプションを使用します。オプションを参照してください。サーバに自動的に調整させるようにするかを選択できます。オプションにさまざまな値を実際に設定しながら、最適なスループットを達成できる最小の数を決定する必要があります。オプションでデータベースワーカスレッドの最大数を指定します。オプションは最小数となる初期値を指定するために使用します。サーバによってアクティブなデータベースワーカスレッドの数が定期的に調整されます。データベースワーカスレッドの数が多いほど、統合データベースに同時にアクセスできる同期の数が多くなり、スループットが向上する「可能性があります」が、競合やブロッキングが発生する可能性が高くなります。データベースへの接続数、最適なキャッシュに必要なメモリを少なくすることができます。サーバは、最大のスループットを実現できるように、負荷に基づいてデータベースワーカスレッドの数を自動調整できます。オプションを使用して、同時に使用するデータベースワーカスレッド数の初期値を設定します。オプションを使用して、同時に使用するデータベースワーカスレッド数の最大値を設定します。オプションで設定したパラメータの範囲内でデータベースワーカスレッドの数を増減することによって調整します。オプションで設定した値は、自動的には調整されません。オプションが指定されない場合は、任意またはすべてのデータベースワーカスレッドにアップロードが適用される可能性があります。適用されるデータベースワーカスレッドの数は変動します。サーバがスループットを高めようとしてデータベースワーカスレッドの数を増加させると、問題が検出されてスレッド数を減少させるまでの間、一時的に競合の発生が増加してしまう可能性があります。サイズの小さいアップロードトランザクションの使用サイズの大きいアップロードを実行すると、統合データベースにおけるトランザクションが大規模になる可能性があります。トランザクションが大規模になると、トランザクションで保持されるロックが多くなるため、ブロッキングと競合が増えます。これにより、同期スループットと統合データベース全体のスループットの両方が大幅に低下することがあります。アップロードのサイズを小さくすると、ブロッキングと競合が減り、スループットは大幅に向上する可能性があります。サイズの小さいアップロードを送信できます。オプションを使用して、トランザクション単位のアップロードを実行します。各トランザクションが個別に送信されます。オプションを参照してください。拡張オプションを使用して、インクリメンタルアップロードを実行します。各インクリメントに、結合されたトランザクションが含まれます。回のアップロードに結合されるトランザクション数は多くなります。拡張オプションを参照してください。つの統合側のトランザクションにまとめることによって、パフォーマンスをチューニングできます。チューニングするだけで済むため、便利です。オプションを参照してください。スループットを最大化するために、これらのクライアント側とサーバ側のオプションをテストしてチューニングします。含めるのは非効率的です。加えた数に設定します。データベース接続を閉じたり作成したりする必要が少なくなります。オプションで設定します。オプションを参照してください。サーバを実行しているコンピュータに、他のメモリ要件に加えて、キャッシュを確保する十分な物理メモリがあることを確認してください。ビットプラットフォームへの移行を検討してください。アクティブに処理される同期の数は、データベースワーカスレッドの数によって制限されません。サーバでは、多数の同期のアップロードのアンパックとダウンロードの送信を同時に行うことができます。サーバでディスクへのページングが開始されると、サーバのスループットは大幅に低下します。サーバにあることが重要です。モニタに「キャッシュがいっぱいです」という警告があるかどうかを検索します。サーバでは、必要に応じて、メモリを自動的に拡張または縮小します。オプションを使用します。サーバの処理がボトルネックにならないようにしてください。処理能力は、統合データベースの場合に比べて非常に小さくてすみます。サーバの処理要件が増えます。実際には、ボトルネックの要因になることが多いのは、ネットワークの制限やデータベースの競合です。統合データベースのスクリプトを実行するときのパフォーマンスは重要です。テーブルに対してインデックスを作成し、アップロードカーソルスクリプトとダウンロードカーソルスクリプトによって必要なローだけが効率的に特定されるようにすると便利です。インデックスが多すぎるとアップロードに時間がかかります。アプリケーションを作成する場合、モデルを展開すると、インデックスがダウンロードカーソルごとに自動的に定義されます。最小の冗長ロギングの使用ビジネスニーズに合う最小の冗長ロギングを使用してください。ディスクにログを書き込みません。オプションを使用します。オプションを使用すると、ファイルへのロギングを有効にできます。プロファイラで同期をモニタできます。サーバと同じコンピュータ上になくてもかまいません。サーバのパフォーマンスに与える影響はほとんどありません。プロファイラを参照してください。介してサーバがサポートできる同時接続数は、オペレーティングシステムによって制限されます。超えるクライアントが同時に同期しようとしたときにこの制限に達する可能性があります。この制限に達すると、オペレーティングシステムで予期しない動作が発生する可能性があります。接続が予期せずに終了したり、接続しようとするクライアントが拒否されたりします。オプションを使用して、オペレーティングシステムの制限より少ない数をリモート接続の最大数として指定します。クライアントアプリケーションはこのエラーを処理して、数分後に接続を再び試みます。次の項を参照してください。オプション通信エラーが発生しました。同期論理では、スループットに著しい差は見られません。同期論理では、同期ごとに余分なオーバヘッドが発生し、より多くのメモリが必要です。サーバが稼働しているコンピュータで実行されます。同期論理が適していることがあります。処理能力が増える可能性があります。一部のテーブルを他のテーブルより高い頻度で同期する必要がある場合は、それらのテーブル用に別のパブリケーションとサブスクリプションを作成します。同期モデルを使用する場合、これを行うには、複数のモデルを作成します。この優先パブリケーションを他のパブリケーションより頻繁に同期し、他のパブリケーションをピーク時以外の時間に同期できます。必要なローだけのダウンロードスナップショットではなくタイムスタンプ同期を使用するなどして、必要なローだけをダウンロードするようにしてください。不必要なローのダウンロードは無駄であり、同期のパフォーマンスに悪影響を及ぼします。同期システムに無用なな負荷がかかる場合があります。必要な同期の頻度は慎重に決定してください。徹底的にテストを実施して、期待するパフォーマンスが運用環境で達成されることを確認してください。指定すると、アップロード速度を大幅に改善できます。オプションを使用します。オプションを参照してください。バックグラウンド同期の使用リモートユーザの観点では、バックグラウンドでの同期がより高い頻度で実行されると、同期をできるだけ速く実行する緊急性は低くなります。同期中もリモートユーザが作業を継続できるように、リモートアプリケーションでバックグラウンド同期が使用されるように設計することを検討してください。