sp_babelfish_volatility
PostgreSQL 函数不稳定性有助于优化器更好地执行查询,当在某些子句的某些部分中使用时,会对查询性能产生重大影响。
语法
sp_babelfish_volatility ‘function_name’, ‘volatility’
参数
- function_name(可选)
-
您可以将此参数的值指定为由两部分组成的名称
schema_name.function_name
,也可以仅指定function_name
。如果您仅指定function_name
,则架构名称是当前用户的原定设置架构。 - volatility(可选)
-
有效的 PostgreSQL 不稳定性值为
stable
、volatile
或immutable
。有关更多信息,请参阅 https://www.postgresql.org/docs/current/xfunc-volatility.html
注意
当使用具有多个定义的 function_name
调用 sp_babelfish_volatility
时,将引发错误。
结果集
如果未提及参数,则结果集将显示在以下各列之下: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