Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

アダプティブ・モードの使用によるパフォーマンスの向上

InterSystems SQL は、アダプティブ・モードでクエリの計画と実行の動作を定義するオプションをいくつか組み込んでいます。アダプティブ・モードは、幅広いユース・ケースにおける導入後、すぐに最高のパフォーマンスが得られる既定の設定です。具体的にいうと、アダプティブ・モードでは、実行時プラン選択 (RTPC) と並列処理を制御し、TUNE TABLE コマンドを自動的に実行してクエリ実行の効率を最適化します。アダプティブ・モードを無効にしない限り、アダプティブ・モードで管理されている各機能を個別に制御することはできません。

実行時プラン選択

アダプティブ・モードがアクティブであれば RTPC が有効になっています。これにより、クエリで指定した実行時パラメータ値をオプティマイザで活用して最適なプランを判断できます。RTPC の機能の詳細は、"実行時プラン選択の構成" を参照してください。

テーブルのコンテンツに関する正確な情報がある場合にのみ、RTPC が効果的である点に注意が必要です。その結果、RTPC の有効性は、TUNE TABLE を呼び出して収集するテーブル統計に左右されます。

システム規模の自動並列化

アダプティブ・モードが有効であれば、システム規模の自動並列クエリ処理が有効になっています。したがって、並列処理による利点が得られる可能性があるクエリに並列処理が適用されるように、すべての SELECT クエリには自動的に %PARALLEL によるヒントが指定されます。

ただし、この自動ヒントがあっても、すべてのクエリが並列処理で実行されるわけではありません。SQL オプティマイザによって、クエリが並列処理に適していないと判断され、ヒントが無視されることもあります。アダプティブ・モードを適用していても並列処理が適用されない事例の一覧は、"クエリの並列処理の無視" を参照してください。

自動並列処理のしきい値を構成するパラメータでも、クエリを並列実行するかどうかが判断されます。このしきい値が大きいほど、並列処理が使用される可能性が低くなります。このしきい値は複雑な最適化計算で使用される値ですが、並列クエリ処理に対する適格性がオプティマイザで検討される前にアクセス先のマップに存在する必要があるタプルの最小数としてこの値を捉えることもできます。この値の既定値は 3200 で、最小値は 0 です。$SYSTEM.SQL.Util.SetOption("AutoParallelThreshold",n,.oldval) を使用すると、この設定の値を変更できます。n は、自動並列処理のしきい値として設定する値です (.oldval は、上書きする値を保持する戻り値を表す変数です)。

シャード環境では、アダプティブ・モードが有効であれば、並列処理しきい値に関係なく、すべてのクエリが並列処理で実行されます。

並列処理によるメモリ使用の詳細は、"並列クエリ処理の構成" の "共有メモリの考慮事項" を参照してください。

自動チューニング

最も効率的なクエリ・プランがクエリ・オプティマイザで選択されるようにするには、テーブル上のデータを正確に表す最新の統計がそのテーブルに存在する必要があります。TUNE TABLE コマンドを使用した効率的なサンプリング、またはテーブル定義にハードコーディングした統計処理によって、このような統計を収集できます。一般的に、新しいテーブルには、TUNE TABLE を呼び出していない限り、このような統計が存在しません。統計がないテーブルでは、そのテーブルに発行される最初のクエリを実行する前に高速なブロック サンプリングの実行が適切であれば、アダプティブ・モードを使用することで必ず TUNE TABLE が自動的に実行されます。この機能を使用すれば、テーブル統計の収集によってクエリに得られるパフォーマンス上の大きな利点を見逃すことがなくなります。

TUNE TABLE で収集される統計のいくつかに関する詳細は、"クエリ・オプティマイザで使用するテーブル統計" を参照してください。

Note:

一般的なデータをテーブルにロードした後やそのコンテンツを大幅に変更した後でも、TUNE TABLE の実行には意味があります。自動チューニングが動作するのは、テーブルに対するクエリが初めて実行されたときの 1 回のみです。一般的なデータがテーブルに入力される前に、このような状況が発生することもあり得ます。

アダプティブ・モードの無効化

アダプティブ・モードの無効化が必要になる状況は多くありませんが、[システム管理][構成][SQL とオブジェクトの設定][SQL] に移動し、[アダプティブモードをオフにして実行時プラン選択と自動チューニングを無効にする] チェック・ボックスにチェックを入れることで、アダプティブ・モードを無効にすることができます。

アダプティブ・モードを無効にしている場合は、アプリケーションのニーズに基づいて実行時プラン選択と並列処理を手動で構成すること、およびデータのディストリビューションを大幅に変更したときは手動で TUNE TABLE を実行することをお勧めします。


FeedbackOpens in a new tab