メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

SET

サーバー設定パラメータの値を設定します。

RESET コマンドを使って、パラメータをデフォルト値に戻します。 パラメータの詳細については、「サーバー設定の変更」を参照してください。

構文

Copy
SET { [ SESSION | LOCAL ] parameter_name { TO | = } { value | 'value' | DEFAULT } | SEED TO value }

Parameters

SESSION

現在のセッションに対して、設定が有効であることを指定します。デフォルト値

LOCAL

設定が現在の取引で有効なことを指定します。

SEED TO

乱数生成用に RANDOM 関数が使用する内部シードを設定します。

SET SEED は 0~1 の数を取り、RANDOM 関数 関数で使用するため、この値に (231-1) を乗算します。複数の RANDOM コールの前に SET SEED を使用すると、RANDOM は予想可能な順番で番号を生成します。

parameter_name

設定するパラメータの名前。 パラメータの詳細については、「サーバー設定の変更」を参照してください。

新しいパラメータ値。 一重引用符を使って、指定文字列に値を設定します。SET SEED を使用した場合、このパラメータには SEED 値が含まれます。

DEFAULT

パラメータをデフォルト値に設定します。

現在のセッションのパラメータの変更

次の例は、データスタイルを設定します。

Copy
set datestyle to 'SQL,DMY';

ワークロード管理用のクエリグループの設定

クラスターの WLM 設定の一部として、クエリグループをキュー定義で一覧表示した場合、一覧表示されたクエリクループ名に QUERY_GROUP パラメータを設定できます。 以降のクエリは、関連するクエリキューに割り当てられます。QUERY_GROUP グループの設定は、セッションの有効期間中、または RESET QUERY_GROUP コマンドの遭遇するまで有効です。

この例では、クエリグループ「priority」の一部として 2 つのクエリを実行し、その後クエリグループをリセットします。

Copy
set query_group to 'priority'; select tbl, count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;

ワークロード管理の実装」を参照してください。

クエリグループのラベルの設定

QUERY_GROUP パラメータは、SET コマンド実行後に同じセッションで実行される 1 つまたは複数のクエリに対して、ラベルを定義します。 また、クエリが実行され、STL_QUERY や STV_INFLIGHT システムテーブル、および SVL_QLOG ビューから返される結果を制約する場合に、このラベルが記録されます。

Copy
show query_group; query_group ------------- unset (1 row) set query_group to '6 p.m.'; show query_group; query_group ------------- 6 p.m. (1 row) select * from sales where salesid=500; salesid | listid | sellerid | buyerid | eventid | dateid | ... ---------+--------+----------+---------+---------+--------+----- 500 | 504 | 3858 | 2123 | 5871 | 2052 | ... (1 row) reset query_group; select query, trim(label) querygroup, pid, trim(querytxt) sql from stl_query where label ='6 p.m.'; query | querygroup | pid | sql -------+------------+-------+---------------------------------------- 57 | 6 p.m. | 30711 | select * from sales where salesid=500; (1 row)

クエリグループのラベルは、スクリプトの一部として実行された個々のクエリやクエリグループを分離するための有益なメカニズムです。クエリの ID によってクエリの識別や追跡を行う必要はありません。ラベルによってクエリの追跡が可能です。

乱数生成用のシード値の設定

次の例では、SET コマンドで SEED オプションを使用し、RANDOM 関数により、予想可能な順番で数値を生成します。

まず、SEED 値を最初に設定せずに、3 つの整数の乱数を返します。

Copy
select cast (random() * 100 as int); int4 ------ 6 (1 row) select cast (random() * 100 as int); int4 ------ 68 (1 row) select cast (random() * 100 as int); int4 ------ 56 (1 row)

次に、SEED 値を .25 に設定して、さらに 3 つの整数の乱数を返します。

Copy
set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)

最後に、SEED 値を .25 にリセットして、RANDOM が前の 3 つの呼び出しと同じ結果を返すことを確認します。

Copy
set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)

このページの内容: