tencent cloud

TDSQL-C for MySQL

hint ステートメント制御

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:39:26
TDSQL-C for MySQL は、関連パラメータを調整することで並列クエリ機能を有効化または無効化することをサポートしています。コンソールを通じて、全体の SQL文 に対して並列クエリ機能を有効化または無効化し、実行条件パラメータを設定することが可能です。また、ヒント文を使用して単一の SQL文 に対して特定の並列実行方式を指定することもサポートしています。
説明:
ヒント文はSQL文の実行の有無を指定でき、指定したSQL文に対してセッションレベルのパラメータを適用できます。ヒント文は同時に指定された並列表のクエリをサポートしています。

ヒント文の使用例

機能
コマンドライン
説明
パラレルクエリの有効化
SELECT /*+PARALLEL(x)*/ ... FROM ...;
x は0より大きい必要があります。x は当該 SQL文 で使用されるパラレルクエリの並列度(並列度)を示します。
パラレルクエリの無効化
SELECT /*+PARALLEL(x)*/ ... FROM ...;
xを0に設定すると、パラレルクエリ機能が無効化されることを意味します。
並列表の指定
以下の2つの方法で、どのテーブルがパラレルクエリプランの実行を許可されるかどうかを指定できます。
PARALLELによって、テーブルにパラレルクエリプランを実行するよう指定できます。
SELECT /*+PARALLEL(t)*/ ... FROM ...;
NO_PARALLELによって、テーブルにパラレルクエリプランの実行を禁止するよう指定できます。
SELECT /*+NO_PARALLEL(t)*/ ... FROM ...;
t はテーブル名を表します。
並列表とパラレルクエリの並列度(並列度)を同時に指定できます。
SELECT /*+PARALLEL(t x)*/ * ... FROM ...;
x は0より大きい必要があります。x は当該 SQL文 で使用されるパラレルクエリの並列度(並列度)を示し、t はテーブル名を表します。
ヒント文によってセッションレベルパラメータを設定し、指定したSQL文にのみ適用されます。
SELECT /*+SET_VAR(var=n)*/ * ... FROM ...;
var はセッションスコープをサポートするパラレルクエリパラメータです。

ヒントステートメントの使用シナリオ例

シナリオ1:select /*+PARALLEL()*/ * FROM t1、t2、 強制的な並列度はtxsql_parallel_degreeに設定された値(デフォルトの並列度)でパラレルクエリを実行します。ステートメントがパラレルクエリの実行条件を満たさない場合、フォールバックしてシリアルクエリを実行します。
シナリオ2:select /*+PARALLEL(4)*/ * FROM t1、t2、 システムのデフォルト並列度の値に関わらず、当該ステートメントに並列度4を強制的に使用させてパラレルクエリを実行します。このステートメントのtxsql_parallel_degreeを4に設定し、ステートメントがパラレルクエリの実行条件を満たさない場合、フォールバックしてシリアルクエリになります。
シナリオ3:select /*+PARALLEL(t1)*/ * FROM t1、t2、 t1テーブルを選択してパラレルクエリを実行します。並列度はシステムのデフォルト並列度です。t1テーブルが txsql_parallel_table_record_threshold に設定された値より小さい場合、フォールバックしてシリアルクエリになります。
シナリオ4:select /*+PARALLEL(t1 8)*/ * FROM t1、t2、 t1テーブルを選択してパラレルクエリを実行します。並列度は8です。t1テーブルが txsql_parallel_table_record_threshold に設定された値より小さい場合、フォールバックしてシリアルクエリになります。
シナリオ5:select /*+NO_PARALLEL(t1)*/ * FROM t1、t2、 t1テーブルに対してパラレルクエリの実行を禁止するよう指定します。t1テーブルのサイズが txsql_parallel_table_record_threshold に設定された値を超える場合、フォールバックしてシリアルクエリを実行します。
シナリオ6:select /*+SET_VAR(txsql_parallel_degree=8)*/ * FROM t1、t2、 システムのデフォルト並列度の値に関わらず、当該ステートメントに並列度8を強制的に使用させてパラレルクエリを実行します。このステートメントのtxsql_parallel_degreeを8に設定します。
シナリオ7:select /*+SET_VAR(txsql_parallel_cost_threshold=1000)*/ * FROM t1、t2 当該ステートメントのtxsql_parallel_cost_thresholdを1000に設定します。ステートメントの実行コストが1000を超える場合、パラレルクエリが使用可能になります。
シナリオ8:select /*+SET_VAR(txsql_optimizer_context_max_mem_size=500000)*/ * FROM t1、t2 単一ステートメントのtxsql_optimizer_context_max_mem_sizeを500000に設定します。当該ステートメントが申請可能なパラレルクエリプラン環境の最大メモリ制限は500000に調整されます。

関連ドキュメント

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック