sp_babelfish_volatility
PostgreSQL 関数の変動性により、オプティマイザはクエリをより適切に実行でき、特定の句の一部で使用すると、クエリのパフォーマンスに大きな影響を与えます。
構文
sp_babelfish_volatility ‘function_name’, ‘volatility’
引数
- function_name (オプション)
-
この引数の値は、
schema_name.function_nameとして 2 つの部分からなる名前で指定するか、function_nameのみを指定することができます。function_nameのみを指定した場合、スキーマ名は、現在のユーザーのデフォルトスキーマです。 - 変動性 (オプション)
-
PostgreSQL の変動性の有効な値は、
stable、volatile、またはimmutableです。詳細については、「https://www.postgresql.org/docs/current/xfunc-volatility.html」を参照してください。
注記
sp_babelfish_volatility が複数の定義を持つ function_name で呼び出されると、エラーをスローします。
結果セット
パラメータが指定されていない場合、結果セットは schemaname、functionname、volatility 列に表示されます。
使用に関する注意事項
PostgreSQL 関数の変動性により、オプティマイザはクエリをより適切に実行でき、特定の句の一部で使用すると、クエリのパフォーマンスに大きな影響を与えます。
例
次の例は、簡単な関数を作成する方法を示し、後でさまざまな方法を使用してこれらの関数で sp_babelfish_volatility を使用する方法を示します。
1>create function f1() returns int as begin return 0 end2>go
1>create schema test_schema2>go
1>create function test_schema.f1() returns int as begin return 0 end2>go
次の例は、関数の変動性を示しています。
1>exec sp_babelfish_volatility2>goschemaname functionname volatility ----------- ------------ ---------- dbo f1 volatile test_schema f1 volatile
次の例は、関数の変動性を変更する方法を示しています。
1>exec sp_babelfish_volatility 'f1','stable'2>go1>exec sp_babelfish_volatility 'test_schema.f1','immutable'2>go
function_name のみを指定すると、その関数のスキーマ名、関数名、および変動性が表示されます。次の例は、値を変更した後の関数の変動性を示しています。
1>exec sp_babelfish_volatility 'test_schema.f1'2>goschemaname functionname volatility ----------- ------------ ---------- test_schema f1 immutable
1>exec sp_babelfish_volatility 'f1'2>goschemaname functionname volatility ----------- ------------ ---------- dbo f1 stable
引数を指定しなかった場合、現在のデータベースに存在する関数のリスト (スキーマ名、関数名、変動性) が表示されます。
1>exec sp_babelfish_volatility2>goschemaname functionname volatility ----------- ------------ ---------- dbo f1 stable test_schema f1 immutable