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