更新时间:2026-02-06 GMT+08:00
分享

Global Plsql Cache特性函数

invalidate_plsql_object(),invalidate_plsql_object(schema, objname, objtype)

描述:使Global Plsql Cache全局缓存中的对象失效,仅在enable_global_plsqlcache = on时可用。当前版本分布式不支持使用该函数。调用该函数的用户需要具有SYSADMIN权限。

参数:该函数为重载函数。

  • 无参调用:将使DATABASE内的所有全局缓存对象失效。
  • 带参调用:当指定schema、objname、objtype三个参数时,可将当前DATABASE内的指定全局缓存对象失效。其中:
    • schema为对象所属的schema名称。
    • objname为对象名称。
    • objtype为对象类型,对象为package类型时值为“package”,对象为函数或存储过程时值为“function”。

gs_plsql_memory_object_detail(db_oid, obj_oid, obj_type)

描述:获取存储过程创建的package、function的主要有效内存占用情况。enable_global_plsqlcache = off时该函数显示当前session中的存储过程内存情况,跨session查询暂不支持。当前版本分布式不支持使用该函数。调用该函数的用户需要有SYSADMIN权限。

参数:该函数需传入db_oid、obj_oid、obj_type三个参数,如传入参数不匹配,返回空行。具体参数说明如表1所示。其中db_oid、obj_oid传入0为默认查找cache中所有package、function的有效内存使用情况。

表1 gs_plsql_memory_object_detail参数说明

参数列表

类型

描述

取值范围

db_oid

uint32

查询数据库oid为db_oid内存储的存储过程的主要有效内存占用情况。0默认为当前缓存中全部数据库实例。

0~2^32-1。

obj_oid

uint32

查询object的oid。0默认为当前缓存中全部pkg与function。

0~2 ^32-1。

obj_type

text

查询object的类型,标识查询目标object为package或function。

  • all:默认全部查询。
  • pkg:查询满足条件的package有效内存占用。
  • func:查询满足条件的function有效内存占用。
  • func_in_pkg:查询满足条件的package中的function的有效内存占用。

返回值类型:Tuple

该函数显示数据库内满足查询条件的有效内存占用情况说明如表2所示。

表2 gs_plsql_memory_object_detail返回值

名称

类型

描述

object_oid

uint32

查询内存对象的oid。

context_name

text

内存对象名。

item

text

查询内存对象项目名。

searchpath

text

内存对象访问编译产物的Schema及其他环境变量。

guc

uint64

创建对象时的环境参数,即behavior_compat_flags的值。

file

text

内存对象创建所在文件。

line

uint32

内存对象创建所在文件行数。

size

uint32

内存对象大小。

db_oid

uint32

查询内存对象所在数据库oid。

dump_plsql_compiled_object(object_oid, object_type)

描述:打印存储过程的PACKAGE、FUNCTION编译产物信息。GUC参数enable_global_plsqlcache设置为off时,该函数只能查找当前session内的编译产物信息。暂不支持跨session、跨database查询。调用该函数需要有SYSADMIN权限。

参数:该函数需要传入object_oid和object_type两个参数,如果传入参数的数量或者类型不匹配,返回报错。具体参数说明如表3所示。

表3 dump_plsql_compiled_object参数说明

参数列表

类型

描述

取值范围

object_oid

uint32

查询object的oid。

0~2^32-1。

object_type

text

查询object的类型(不区分大小写)。

  • "package":查询object类型为package。
  • "function":查询object类型为function(查询效果与procedure等价)。
  • "procedure":查询object类型为procedure(查询效果与function等价)。

返回值类型:text

示例:

-- 如下用例构造当GUC参数enable_global_plsqlcache设置为on时,创建存储过程,调用dump_plsql_compiled_object打印存储过程编译产物信息的情况。
gaussdb=# CREATE OR REPLACE PROCEDURE test_proc(a out int, b out int) AS
gaussdb$# BEGIN
gaussdb$# a := 1;
gaussdb$# b := 1;
gaussdb$# END;
gaussdb$# /
CREATE PROCEDURE
gaussdb=# SELECT test_proc();
 test_proc 
-----------
 (1,1)
(1 row)

gaussdb=# SELECT oid FROM pg_proc WHERE proname = 'test_proc';
  oid 
-------
 17879
(1 row)

gaussdb=# SELECT * FROM dump_plsql_compiled_object(17879, 'function');
                                                                                                                                                                            dump_plsql_compiled_object

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 PL/pgSQL compiled function info:
                                                                                                                                                                      +
 fn_oid: 17879
                                                                                                                                                                      +
 pkg_oid: 0
                                                                                                                                                                      +
 namespace_oid: 2200
                                                                                                                                                                      +
 fn_owner: 10
                                                                                                                                                                      +
 fn_input_collation: 0
                                                                                                                                                                      +
 fn_xmin: 198373
                                                                                                                                                                      +
 fn_signature: test_proc()
                                                                                                                                                                      +
 fn_searchpath:{ 2200 , addCatalog: true, addTemp: true, addUser: false}
                                                                                                                                                                      +
 fn_rettype: 2249
                                                                                                                                                                      +
 fn_rettyplen: 0
                                                                                                                                                                      +
 fn_rettypioparam: 0
                                                                                                                                                                      +
 glc_func_life: 2
                                                                                                                                                                      +
 fn_retbyval: false
                                                                                                                                                                      +
 fn_retistuple: true
                                                                                                                                                                      +
 fn_retset: false
                                                                                                                                                                      +
 fn_readonly: false
                                                                                                                                                                      +
 is_private: false
                                                                                                                                                                      +
 fn_is_trigger: false
                                                                                                                                                                      +
 pre_parse_trig: false
                                                                                                                                                                      +
 is_autonomous: false
                                                                                                                                                                      +
 is_inline_handler: false
                                                                                                                                                                      +
 is_plpgsql_func_with_outparam: false
                                                                                                                                                                      +
 need_skip_process_autonm_pkg: false
                                                                                                                                                                      +
 remembered_by_resowner: false
                                                                                                                                                                      +
 out_param_varno: 2
                                                                                                                                                                      +
 found_varno: 3
                                                                                                                                                                      +
 fn_nallargs: 2
                                                                                                                                                                      +
 sql_cursor_found_varno: 4
                                                                                                                                                                      +
 sql_notfound_varno: 5
                                                                                                                                                                      +
 sql_isopen_varno: 6
                                                                                                                                                                      +
 sql_rowcount_varno: 7
                                                                                                                                                                      +
 sql_bulk_exceptions_varno: 11
                                                                                                                                                                      +
 sqlcode_varno: 8
                                                                                                                                                                      +
 sqlstate_varno: 9
                                                                                                                                                                      +
 sqlerrm_varno: 10
                                                                                                                                                                      +
 retvarno: 0
                                                                                                                                                                      +
 guc_stat: 22821463346118656
                                                                                                                                                                      +
 use_count: 0
                                                                                                                                                                      +
 resolve_option: 2
                                                                                                                                                                      +
 ndatums: 12
                                                                                                                                                                      +
 datums:{
                                                                                                                                                                      +
 type: GSPLSQL_DTYPE_VAR, dno: 0 ispkg: false refname: $1 isImplicit: false addNamespace: false pkg_oid: 0 varname: a isconst: 0,notnull: 0, isnull: true freeval: false is_place_holder: false isbind: fals
e is_cursor_var: false is_cursor_open: false is_diff_pkg_cursor: false tableOfIndexType: 0 isIndexByTblOf: false                                                      +
 GSPLSQLType: typname: int4, typoid: 23, ttype: 0, typlen: 4, typrelid: 0, typioparam: 23, collation: 0, typinput_oid: 42, atttypmod: -1, typbyval: true, typtype: b, typnamespace: pg_catalog, collectionTy
pe: 0, tableofOid: 0, tableOfIndexType: 0, arrayTypOid: 0, cursorCompositeOid: 0, subtypOid: 0, is_subtype: false, notnull: false, temptypmod: -1                     +
 default_val: cursor_explicit_expr:

...
 }
                                                                                                                                                                      +
 datum_need_free:{ 0: true 1: true 2: true 3: true 4: true 5: true 6: true 7: true 8: true 9: true 10: true 11: true }
                                                                                                                                                                      +
 namespace_name: public
                                                                                                                                                                      +
 glc_status:{m_type: GLC_FUNCTION_OBJ, m_location: in_global_hash_table, m_glc_object_state: valid, m_refcount: 1}
                                                                                                                                                                      +
 fn_nargs: 0
                                                                                                                                                                      +
 dump count: 1
                                                                                                                                                                      +
 **************************************************************************
                                                                                                                                                                      +

(1 row)

相关文档