クエリーの結合と複雑さに伴うサイズ制限
プラットフォームでは、リレーショナルデータベースを使用してデータを保存します。データの取得では、複数の結合で単一の結果セットを作成する場合があります。これらの結合は通常は単純ですが、場合によっては、システムが非常に大規模な結合を発行して 20 件を超える多数のテーブルをまとめることがあります。
データベースエンジンは通常、複数の結合を適切に処理します。リレーショナルモデルでは、結合が低コストで効率的であると想定しており、通常はその通りです。ただし、結合が大きすぎてデータベースにパフォーマンスの問題が発生することが稀にあります。
この潜在的な複雑さを軽減するには、次のプロパティを使用して結合の複雑さとサイズを制限します。
[システムプロパティ] > [システム] に移動し、次の説明を含むプロパティを見つけます。
クエリーごとのデータベース結合の最大数 (Max number of database joins per query)。値を小さくすると、それほど複雑でないクエリーが多数発行されます (Smaller values cause the system to issue a larger number of less complex queries)。値を大きくすると、クエリーの数は減りますが、個々のクエリーは複雑になります (Larger values reduce the number of queries at the cost of additional complexity per query)。既知のデータベースの問題が多数の結合から発生している場合を除き、このプロパティは変更しないでください。
このプロパティは、システムが実行を希望する結合の最大数を指定します。特定のエッジケースでは、より複雑なクエリーを発行する必要がありますが、通常発行される結合はこの数を超えません。たとえば値が 10 の場合、ある特定のクエリーで結合されるテーブルは 10 個以下になります。
システムは必要なデータを取得するため、クエリーの発行を増やすことによって結合の少なさを補う必要があるため、この数を低く調整するとデータベースに送信されるクエリーの件数が増えることになります。ほとんどの場合、このパラメーターの調整は逆効果です。