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