华为云用户手册

  • PG_TS_TEMPLATE PG_TS_TEMPLATE系统表包含定义文本搜索模板的记录。模板是文本搜索字典的类的实现框架。因为模板必须通过C语言级别的函数实现,索引新模板的创建必须由数据库系统管理员创建。 表1 PG_TS_TEMPLATE字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 tmplname name - 文本搜索模板名。 tmplnamespace oid PG_NAMESPACE.oid 包含这个模板的名称空间的OID。 tmplinit regproc PG_PROC.proname 模板的初始化函数名。 tmpllexize regproc PG_PROC.proname 模板的lexize函数名。 父主题: 其他系统表
  • GLOBAL_GS_SEG_DATAFILES GLOBAL_GS_SEG_DATAFILES在CN上执行,用于查看所有节点所有表空间的数据文件信息。只支持管理员权限用户查询。 表1 GLOBAL_GS_SEG_DATAFILES字段 名称 类型 描述 node_name text 节点名称。 file_name text 数据文件名。例如,base/17467/2_fsm。 file_id integer 数据文件标识。取值范围:[1,5]的int4值。 bucketnode integer 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum integer 段对象的分支类型。取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 tablespace_name name 数据文件所属的表空间名称。 contents text 数据文件的存储内容。取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 extent_size integer 数据文件的扩展大小。 meta_blocks bigint 数据文件的已分配的元页面数。 data_blocks bigint 数据文件的已分配的数据页面数。 total_blocks bigint 数据文件的总物理页面数。 high_water_mark bigint 数据文件使用页数的高水位线。 utilization real 使用的block数占总block数的百分比。即(data_blocks+meta_blocks)/total_blocks。 父主题: 段页式存储
  • GLOBAL_RECOVERY_STATUS GLOBAL_RECOVERY_STATUS视图显示关于主机和备机的日志流控信息,如表1所示。 表1 GLOBAL_RECOVERY_STATUS字段 名称 类型 描述 node_name text 节点的名称,包含主机和备机。 standby_node_name text 备机节点的名称。 source_ip text 主机的IP地址。 source_port integer 主机的端口号。 dest_ip text 备机的IP地址。 dest_port integer 备机的端口号。 current_rto bigint 备机当前的日志流控时间,单位秒。 target_rto bigint 备机通过GUC参数设置的预期流控时间,单位秒。 current_sleep_time bigint 为了达到此RTO预期,主机所需要执行的睡眠时间,单位微秒。 父主题: Utility
  • 连接池场景 连接池允许应用程序重复使用预先建立的连接,无需每次都重新建立连接。连接一旦创建并放入连接池,应用程序即可重复利用,避免了重复执行完整的连接过程。 这种池化连接的使用可以显著提升性能,尤其对于需要频繁建立和断开连接的中间层应用程序或网络连接的应用程序而言,性能提升尤为明显。 除了性能优势外,连接池架构还能够实现环境中的连接在单个进程中被多个组件共享的目的。这意味着,同一进程中的不同组件可以在不互相干扰的情况下共享连接池中的连接,进一步提高了系统的效率和资源利用率。 在连接池中,打开的连接可能被多个用户重用,如果您的应用程序脚本会更改数据库连接的状态,可能会导致数据泄露,为了安全起见,请谨慎评估使用连接池。 Linux场景配置 在odbcinst.ini配置文件中开启连接池,连接池相关参考配置如下: [ODBC] Pooling=Yes #开启连接池 [GaussMPP] CPTimeout=60 #一个连接在连接池中未被重用则会被释放的计时,默认为0,开启连接池需要设置为大于0 CPTimeToLive=60 #该驱动下连接池存在的计时 [GaussMPP2] CPTimeout=0 #关闭连接池 Windows场景配置 在打开的驱动管理器上,选择“连接池”后双击“ GaussDB Unicode”驱动名称,选择“使用池连接此驱动程序”[默认为60s],该设置参数同Linux场景配置的CPTimeout,参考例图如下: 在应用程序中配置连接池参数,需要在环境句柄创建前通过调用SQLSetEnvAttr 设置连接池参数,其中的环境句柄应设置为 null,这使得 SQL_ATTR_CONNECTION_POOLING 成为进程级属性。目前在Windows上支持配置SQL_ATTR_CONNECTION_POOLING为以下两种值: SQL_CP_OFF:默认参数设置,禁用连接池。 SQL_CP_ONE_PER_DRIVER:开启连接池,每个驱动支持一个连接池,驱动其中的所有连接共享一个池。 应用程序调用 SQLConnect 或 SQLDriverConnect 时,会从连接池中提取连接,如果连接已超时,或者池中没有与请求匹配的连接,则会打开一个新连接,连接池对调用应用程序是透明的。 应用程序调用 SQLDisconnect 时,链接不会被释放,而是会将连接放回连接池用于下一次使用。 在环境上调用 SQLFreeHandle释放环境句柄前,应用程序成功为环境设置的所有环境属性都会持续存在。 应用程序的连接在一段时间内处于非活动状态(未在连接中使用),则会从池中删除该连接。连接池的大小仅受内存限制和服务器限制。
  • 负载均衡场景 当应用程序有大并发场景时可开启负载均衡: 负载均衡即为将并发连接随机分发到所有CN上,避免单个CN负载过大,达到提高性能的目的。 配置参数AutoBalance=1,开启负载均衡功能。 参数RefreshCNListTime=5可以选择性配置,默认刷新时间为10s。 参数Priority=1可以选择性配置,即为并发连接优先发送到配置文件中配置的CN上,当配置的CN全部不可连接时,连接才会被分发到剩余CN上。 示例场景: 集群环境有6个CN,CN1、CN2、CN3、CN4、CN5和CN6;配置文件配置4个CN,为CN1、CN2、CN3和CN4。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 Sslmode=allow AutoBalance=1 RefreshCNListTime=3 Priority=1 当配置文件和集群环境如示例时,并发连接会随机、平均发送到CN1、CN2、CN3和CN4上,连接数均衡。当CN1、CN2、CN3和CN4全部不可用时,并发连接会随机、平均发送到CN5和CN6上。如果此时CN1、CN2、CN3和CN4中有CN重新可用时,连接则不会再发送到CN5和CN6上,而是重新发送到重新可用的CN上。
  • 备机读场景 配置文件配置CN节点,设置StandbyRead=1开启分布式备机读模式。 odbc.ini配置文件示例: [gaussdb] Driver=GaussMPP Servername=10.145.130.26,10.145.130.27,10.145.130.28,10.145.130.29 #数据库Server IP。 Database=db1 #数据库名称。 Username=omm #数据库用户名称。 Password= #数据库用户密码。 Port=8000 #数据库侦听端口。 StandbyRead=1 #打开备机读模式。 Sslmode=allow AutoBalance=1 #开启负载均衡模式。
  • 日志诊断场景 ODBC日志分为unixODBC驱动管理器日志和gsqlODBC驱动端日志。前者可以用于追溯应用程序API的执行成功与否,后者是底层实现过程中的一些DFX日志,用来帮助定位问题。 unixODBC日志需要在odbcinst.ini文件中配置: 1 2 3 4 5 6 7 [ODBC] Trace=Yes TraceFile=/path/to/odbctrace.log [GaussMPP] Driver64=/usr/local/lib/gsqlodbcw.so setup=/usr/local/lib/gsqlodbcw.so gsqlODBC日志只需要在odbc.ini加上如下内容: [gaussdb] Driver=GaussMPP Servername=10.10.0.13 #数据库Server IP ... Debug=1 #打开驱动端debug日志 unixODBC日志将会生成在TraceFile配置的路径下,gsqlODBC会在系统/tmp/下生成mylog_xxx.log。
  • 示例 --创建一个无用的外部数据封装器dummy。 gaussdb=# CREATE FOREIGN DATA WRAPPER dummy; --创建一个带有处理器函数file_fdw_handler 的外部数据封装器file。 gaussdb=# CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler; --创建一个带有一些选项的外部数据封装器mywrapper。 gaussdb=# CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
  • 参数说明 name 要创建的外部数据封装器的名称。 HADNLER handler_function handler_function是先前已经注册了的函数的名称,用来为外部表检索执行函数。处理器函数必须没有参数,并且它的返回类型必须为fdw_handler。 不用处理器函数创建外部数据封装器是可能的,但是使用这种封装器的外部表只能被声明,不能被访问。 VALIDATOR validator_function validator_function是先前已经注册了的函数的名字用来检查提供给外部数据封装器的通用选项,还有使用该外部数据封装器的外部服务器、用户映射和外部表的选项。如果没有验证器函数或声明了NO VALIDATOR,那么在创建时将不检查选项(外部数据封装器可能在运行时忽略或拒绝无效的选项说明,取决于实现)。验证器函数必须接受两个参数:一个类型为text[],将包含存储在系统目录中的选项的数组;一个类型为oid,是包含这些选项的系统目录的OID。忽略返回类型;该函数应该使用ereport(ERROR)函数报告无效选项。 OPTIONS ( option 'value' [, ... ] ) 这个子句为新的外部数据封装器声明选项。允许的选项名和值是特定于每个外部数据封装器的, 并且是经过外部数据封装器的验证器函数验证了的。选项名必须是唯一的。
  • 环境类 客户端需配置JDK1.8。JDK是跨平台的,支持Windows、Linux等多种平台,下面以Windows为例,介绍JDK配置流程: DOS窗口(windows下的命令提示符)输入“java -version”,查看JDK版本,确认为JDK1.8版本。如果未安装JDK,请下载安装包并安装。 右键单击“我的电脑”,选择“属性”。 在“系统”页面左侧导航栏单击“高级系统设置”。 在“系统属性”页面,“高级”页签上单击“环境变量”。 在“环境变量”页面上,“系统变量”区域单击“新建”或“编辑”,设置如下变量名和变量值。变量说明如表1所示。 表1 变量说明 变量名 操作 变量值 JAVA_HOME 若存在,则单击“编辑”。 若不存在,则单击“新建”。 JAVA的安装目录。 例如:C:\Program Files\Java\jdk1.8.0_131。 Path 单击“编辑”。 若配置了JAVA_HOME,则在变量值的最前面加上: %JAVA_HOME%\bin。 若未配置JAVA_HOME,则在变量值的最前面加上 JAVA安装的全路径: C:\Program Files\Java\jdk1.8.0_131\bin。 CLASSPATH 单击“新建”。 %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。 单击“确定”,并依次关闭各窗口。
  • 驱动类 在创建数据库连接之前,需要加载数据库驱动类“com.huawei.gaussdb.jdbc.Driver”。 由于GaussDB在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC驱动的时候,可能会造成类名冲突。 本版本JDBC不再支持 IAM 认证功能。 GaussDB JDBC驱动主要做了以下特性的增强: 支持SHA256加密方式登录。 支持对接实现sf4j接口的第三方日志框架。 支持连接级别的分布式负载均衡。 支持容灾切换。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 --创建安全标签。 gaussdb=# CREATE SECURITY LABEL sec_label 'L1:G4'; --创建表。 gaussdb=# CREATE TABLE tbl(c1 int, c2 int); --创建用户。 gaussdb=# CREATE USER bob WITH PASSWORD '********'; --给用户应用安全标签。 gaussdb=# SECURITY LABEL ON ROLE bob IS 'sec_label'; --给表应用安全标签。 gaussdb=# SECURITY LABEL ON TABLE tbl IS 'sec_label'; --给表的列应用安全标签。 gaussdb=# SECURITY LABEL ON COLUMN tbl.c1 IS 'sec_label'; --给用户取消安全标签。 gaussdb=# SECURITY LABEL ON ROLE bob IS NULL; --给表取消安全标签。 gaussdb=# SECURITY LABEL ON TABLE tbl IS NULL; --给表的列取消安全标签。 gaussdb=# SECURITY LABEL ON COLUMN tbl.c1 IS NULL; --删除表tb1。 gaussdb=# DROP TABLE tbl; --删除用户bob。 gaussdb=# DROP USER bob; --删除已存在的安全标签sec_label。 gaussdb=# DROP SECURITY LABEL sec_label;
  • 触发器函数 pg_get_triggerdef(oid) 描述:获取触发器的定义信息。 参数:待查触发器的OID。 返回值类型:text 示例: -- 创建表tri_insert。 gaussdb=# CREATE TABLE tri_insert (a int, b int) distribute by hash(a); CREATE TABLE -- 创建函数trigger_func。 gaussdb=# CREATE FUNCTION trigger_func() RETURNS trigger LANGUAGE plpgsql AS ' BEGIN RAISE NOTICE ''trigger_func(%) called: action = %, when = %, level = %'', TG_ARGV[0], TG_OP, TG_WHEN, TG_LEVEL; RETURN NULL; END;'; CREATE FUNCTION -- 创建触发器before_ins_stmt_trig。 gaussdb=# CREATE TRIGGER before_ins_stmt_trig BEFORE INSERT ON tri_insert FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('before_ins_stmt'); CREATE TRIGGER -- 创建触发器after_ins_when_trig。 gaussdb=# CREATE TRIGGER after_ins_when_trig AFTER INSERT ON tri_insert FOR EACH ROW WHEN (new.a IS NOT NULL) EXECUTE PROCEDURE trigger_func('after_ins_when'); CREATE TRIGGER -- 查看表tri_insert的触发器定义信息。 gaussdb=# SELECT pg_get_triggerdef(oid) FROM pg_trigger WHERE tgrelid = 'tri_insert'::regclass; pg_get_triggerdef -------------------------------------------------------------------------------------------------------------------------------------------------------- CREATE TRIGGER after_ins_when_trig AFTER INSERT ON tri_insert FOR EACH ROW WHEN ((new.a IS NOT NULL)) EXECUTE PROCEDURE trigger_func('after_ins_when') CREATE TRIGGER before_ins_stmt_trig BEFORE INSERT ON tri_insert FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('before_ins_stmt') (2 rows) pg_get_triggerdef(oid, boolean) 描述:获取触发器的定义信息。 参数:待查触发器的OID及是否以pretty方式展示。 仅在创建trigger时指定WHEN条件的情况下,布尔类型参数才生效。 返回值类型:text 示例: -- 查看表tri_insert的触发器定义信息,以非pretty形式。 gaussdb=# SELECT pg_get_triggerdef(oid, false) FROM pg_trigger WHERE tgrelid = 'tri_insert'::regclass; pg_get_triggerdef -------------------------------------------------------------------------------------------------------------------------------------------------------- CREATE TRIGGER after_ins_when_trig AFTER INSERT ON tri_insert FOR EACH ROW WHEN ((new.a IS NOT NULL)) EXECUTE PROCEDURE trigger_func('after_ins_when') CREATE TRIGGER before_ins_stmt_trig BEFORE INSERT ON tri_insert FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('before_ins_stmt') (2 rows) -- 查看表tri_insert的触发器定义信息,以pretty形式。 gaussdb=# SELECT pg_get_triggerdef(oid, true) FROM pg_trigger WHERE tgrelid = 'tri_insert'::regclass; pg_get_triggerdef ------------------------------------------------------------------------------------------------------------------------------------------------------ CREATE TRIGGER after_ins_when_trig AFTER INSERT ON tri_insert FOR EACH ROW WHEN (new.a IS NOT NULL) EXECUTE PROCEDURE trigger_func('after_ins_when') CREATE TRIGGER before_ins_stmt_trig BEFORE INSERT ON tri_insert FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('before_ins_stmt') (2 rows) -- 清理表tri_insert。 gaussdb=# DROP TABLE tri_insert CASCADE; DROP TABLE -- 清理函数trigger_func。 gaussdb=# DROP FUNCTION trigger_func; DROP FUNCTION 父主题: 函数和操作符
  • ADM_TYPE_ATTRS ADM_TYPE_ATTRS视图描述当前数据库对象类型的属性。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TYPE_ATTRS字段 名称 类型 描述 owner oid 该类型的所有者。 type_name name 数据类型名称。 attr_name name 字段名。 attr_type_mod integer 记录创建新表时支持的类型特定的数据(比如一个varchar字段的最大长度)。它传递给类型相关的输入和长度转换函数当做第三个参数。其值对那些不需要ATTTYPMOD的类型通常为-1。 attr_type_owner oid 该类型属性的所有者。 attr_type_name name 数据类型属性名称。目前该字段记录的是转换后的类型名。 length smallint 对于定长类型是该类型内部表现形式的字节数目。对于变长类型是负数。 -1表示一种“变长”(有长度字属性的数据)。 -2表示这是一个NULL结尾的C字符串。 precision integer 数字类型的精度。 scale integer 数字类型的范围。 character_set_name character(1) 属性的字符集名称(c或n)。 c:CHAR_ CS 。 n:NCHAR_CS。 attr_no smallint 属性编号。 inherited character(1) 表示属性是否继承自超级类型(Y或N)。 attr_length integer 记录创建新表时支持的类型特定的数据(比如一个varchar字段的最大长度)。对于raw类型,因内核实现原因,暂未记录。 父主题: 其他系统视图
  • DB_TAB_PARTITIONS DB_TAB_PARTITIONS视图显示当前用户所能访问的一级分区信息(包括二级分区表)。所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。分布式暂不支持二级分区,所以该视图中暂不存储二级分区表的一级分区信息。 表1 DB_TAB_PARTITIONS字段 名称 类型 描述 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表的名称。 partition_name character varying(64) 分区名称。 high_value text 分区的边界值。 对于范围分区和间隔分区,显示各分区的上边界值。 对于列表分区,显示各分区的取值列表。 对于哈希分区,显示各分区的编号。 tablespace_name name 分区表的表空间名称。 schema character varying(64) 名称空间的名称。 composite character varying(3) 表是否为二级分区表。 subpartition_count numeric 暂不支持,值为NULL。 high_value_length integer 分区边界值表达式的长度。 partition_position numeric 分区在表中的位置。 pct_free numeric 块中可用空间的最小百分比。 pct_used numeric 暂不支持,值为NULL。 ini_trans numeric 初始事务数,默认值为4,非USTORE分区表时为NULL。 max_trans numeric 最大事务数,默认值为128,非USTORE分区表时为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 是否记录对表的更改。 compression character varying(8) 表分区的实际压缩属性。 compress_for character varying(30) 暂不支持,值为NULL。 num_rows numeric 暂不支持,值为NULL。 blocks numeric 暂不支持,值为NULL。 empty_blocks numeric 暂不支持,值为NULL。 avg_space numeric 暂不支持,值为NULL。 chain_cnt numeric 暂不支持,值为NULL。 avg_row_len numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed timestamp with time zone 最近分析此分区的日期。 buffer_pool character varying(7) 用于分区块的缓冲池。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 is_nested character varying(3) 是否是嵌套表分区。 parent_table_partition character varying(128) 暂不支持,值为NULL。 interval character varying(3) 分区是否在间隔分区表的间隔节中。分布式暂不支持间隔分区,该字段值为NO。 segment_created character varying(4) 表分区是否创建了段。 indexing character varying(4) 暂不支持,值为NULL。 read_only character varying(4) 暂不支持,值为NULL。 inmemory character varying(8) 暂不支持,值为NULL。 inmemory_priority character varying(8) 暂不支持,值为NULL。 inmemory_distribute character varying(15) 暂不支持,值为NULL。 inmemory_compression character varying(17) 暂不支持,值为NULL。 inmemory_duplicate character varying(13) 暂不支持,值为NULL。 cellmemory character varying(24) 暂不支持,值为NULL。 inmemory_service character varying(12) 暂不支持,值为NULL。 inmemory_service_name character varying(100) 暂不支持,值为NULL。 memoptimize_read character varying(8) 暂不支持,值为NULL。 memoptimize_write character varying(8) 暂不支持,值为NULL。 父主题: 分区表
  • GS_LOGICAL_TYPE GS_LOGICAL_TYPE系统表存储数据类型的相关信息。 表1 GS_LOGICAL_TYPE字段 字段名称 字段类型 说明 typname name 类型名称。 typnamespace oid 包含此类型的命名空间的OID。 typlen smallint 该类型值所使用的字节数。 typbyval boolean 该类型的值是按值还是按引用传递。 typtype "char" 表示表的行类型。 typisdefined boolean 表示类型是否被完全定义。 typreceive regproc 二进制格式的接收函数。 typsend regproc 发送函数。 typmodin regproc 用于可选类型修饰符的输入函数。 typmodout regproc 输出函数。 typid oid 类型的OID。 dbnode oid 数据库OID。 originid integer 元组的来源标识符。 createtime timestamp with time zone 插入元组的时间戳。 csnmin bigint 插入元组时的 CSN(提交序列号)。 csnmax bigint 更新或删除元组时的 CSN。 父主题: 逻辑解码
  • GS_ADM_ILMPA RAM ETERS GS_ADM_ILMPARAMETERS视图描述ILM调度与执行的相关环境参数,该参数可通过DBE_ILM_ADMIN.CUSTOMIZE_ILM接口进行修改。默认只有系统管理员权限才可以访问此系统视图。 表1 GS_ADM_ILMPARAMETERS字段 名称 类型 描述 name character varying(128) ADO相关的环境参数,通过DBE_ILM_ADMIN.CUSTOMIZE_ILM接口进行修改。 value numeric 参数取值。 父主题: OLTP表压缩
  • GS_ILM_TASK GS_ILM_TASK系统表记录ADO Task的主体信息(创建时间、开始完成时间、执行状态等)。 表1 GS_ILM_TASK字段 名称 类型 描述 taskoid bigint ADO Task的oid。 creator oid ADO Task发起人。 createtime timestamp with time zone 创建时间。 starttime timestamp with time zone 启动时间。 completetime timestamp with time zone 完成时间。 executestate smallint 取值范围: 1:'INACTIVE' 2:'ACTIVE' 3:'COMPLETED' flag smallint 预留字段。 父主题: OLTP表压缩
  • MY_VIEWS MY_VIEWS视图显示当前用户的所有视图信息。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 MY_VIEWS字段 名称 类型 描述 owner character varying(64) 视图的所有者。 view_name character varying(64) 视图名称。 text text 视图文本。 text_length integer 视图文本长度。 text_vc character varying(4000) 视图创建语句。此列可能会截断视图文本。BEQUEATH子句将不会作为此视图中的TEXT_VC列的一部分出现。 type_text_length numeric 暂不支持,值为NULL。 type_text character varying(4000) 暂不支持,值为NULL。 oid_text_length numeric 暂不支持,值为NULL。 oid_text character varying(4000) 暂不支持,值为NULL。 view_type_owner character varying(128) 暂不支持,值为NULL。 view_type character varying(128) 暂不支持,值为NULL。 superview_name character varying(128) 暂不支持,值为NULL。 editioning_view character varying(1) 暂不支持,值为NULL。 read_only character varying(1) 暂不支持,值为NULL。 container_data character varying(1) 暂不支持,值为NULL。 bequeath character varying(12) 暂不支持,值为NULL。 origin_con_id character varying(256) 暂不支持,值为NULL。 default_collation character varying(100) 暂不支持,值为NULL。 containers_default character varying(3) 暂不支持,值为NULL。 container_map character varying(3) 暂不支持,值为NULL。 extended_data_link character varying(3) 暂不支持,值为NULL。 extended_data_link_map character varying(3) 暂不支持,值为NULL。 has_sensitive_column character varying(3) 暂不支持,值为NULL。 admit_null character varying(3) 暂不支持,值为NULL。 pdb_local_only character varying(3) 暂不支持,值为NULL。 父主题: 其他系统视图
  • GLOBAL_USER_TRANSACTION GLOBAL_USER_TRANSACTION用来统计全局用户执行的事务信息,如表1所示。 表1 GLOBAL_USER_TRANSACTION字段 名称 类型 描述 node_name name 节点名称。 username name 用户的名称。 commit_counter bigint 用户事务commit数量。 rollback_counter bigint 用户事务rollback数量。 resp_min bigint 用户事务最小响应时间(单位:微秒)。 resp_max bigint 用户事务最大响应时间(单位:微秒)。 resp_avg bigint 用户事务平均响应时间(单位:微秒)。 resp_total bigint 用户事务总响应时间(单位:微秒)。 bg_commit_counter bigint 后台事务commit数量。 bg_rollback_counter bigint 后台事务rollback数量。 bg_resp_min bigint 后台事务最小响应时间(单位:微秒)。 bg_resp_max bigint 后台事务最大响应时间(单位:微秒)。 bg_resp_avg bigint 后台事务平均响应时间(单位:微秒)。 bg_resp_total bigint 后台事务总响应时间(单位:微秒)。 dbid oid 统计信息所属的数据库id。 父主题: Workload
  • 接口介绍 高级功能包DBE_APPLICATION_INFO支持的所有接口请参见表1。DBE_APPLICATION_INFO作用范围是当前session。 表1 DBE_APPLICATION_INFO 接口名称 描述 DBE_APPLICATION_INFO.SET_CLIENT_INFO 写入客户端信息 DBE_APPLICATION_INFO.READ_CLIENT_INFO 读取客户端信息 DBE_APPLICATION_INFO.SET_MODULE 将当前正在运行的模块的名称设置为新模块。设置module和action。 DBE_APPLICATION_INFO.READ_MODULE 读取当前会话的的模块和操作字段的值。 DBE_APPLICATION_INFO.SET_ACTION 设置当前模块中当前操作的名称,设置action的值。 DBE_APPLICATION_INFO.SET_CLIENT_INFO 写入客户端信息。DBE_APPLICATION_INFO.SET_CLIENT_INFO函数原型为: 1 2 3 DBE_APPLICATION_INFO.SET_CLIENT_INFO( str text )returns void; 表2 DBE_APPLICATION_INFO.SET_CLIENT_INFO接口参数说明 参数 描述 str 写入的客户端信息,最长为64字节,超过64字节将被截断。 DBE_APPLICATION_INFO.READ_CLIENT_INFO 读取客户端信息DBE_APPLICATION_INFO.READ_CLIENT_INFO函数原型为: 1 2 DBE_APPLICATION_INFO.READ_CLIENT_INFO( OUT client_info text); 表3 DBE_APPLICATION_INFO.READ_CLIENT_INFO接口参数说明 参数 描述 client_info 客户端信息。 DBE_APPLICATION_INFO.SET_MODULE 将当前正在运行的模块的名称设置为新模块。DBE_APPLICATION_INFO.SET_MODULE函数原型为: 1 2 3 4 DBE_APPLICATION_INFO.SET_MODULE( IN module_name text, IN action_name text ); 表4 DBE_APPLICATION_INFO.SET_MODULE接口参数说明 参数 描述 module_name 当前正在运行的模块的名称。最长为64字节,超过64字节将被截断。 action_name 当前模块中当前操作的名称。最长为64字节,超过64字节将被截断。 示例: CALL dbe_application_info.set_module('module_name','action_name'); set_module ------------ (1 row) DBE_APPLICATION_INFO.READ_MODULE 读取当前会话的的模块和操作字段的值。DBE_APPLICATION_INFO.READ_MODULE函数原型为: 1 2 3 4 DBE_APPLICATION_INFO.READ_MODULE( OUT module_name text, OUT action_name text ); 表5 DBE_APPLICATION_INFO.READ_MODULE接口参数说明 参数 描述 module_name 当前正在运行的模块的名称。 action_name 当前模块中当前操作的名称。 示例: DECLARE module varchar2(64); action varchar2(64); BEGIN dbe_application_info.read_module(module,action); dbe_output.print_line(module); dbe_output.print_line(action); END; / module_name action_name ANONYMOUS BLOCK EXECUTE DBE_APPLICATION_INFO.SET_ACTION 设置当前模块中当前操作的名称。DBE_APPLICATION_INFO.SET_ACTION函数原型为: 1 2 3 DBE_APPLICATION_INFO.SET_ACTION( IN action_name text ); 表6 DBE_APPLICATION_INFO.SET_ACTION接口参数说明 参数 描述 action_name 当前模块中当前操作的名称。最长为64字节,超过64字节将被截断。 示例 CALL dbe_application_info.set_action('action_name'); set_action ------------ (1 row)
  • 几何函数 area(object) 描述:计算图形的面积。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT area(box '((0,0),(1,1))') AS RESULT; result -------- 1 (1 row) center(object) 描述:计算图形的中心。 返回类型:point 示例: 1 2 3 4 5 gaussdb=# SELECT center(box '((0,0),(1,2))') AS RESULT; result --------- (0.5,1) (1 row) diameter(circle) 描述:计算圆的直径。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT diameter(circle '((0,0),2.0)') AS RESULT; result -------- 4 (1 row) height(box) 描述:矩形的竖直高度。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT height(box '((0,0),(1,1))') AS RESULT; result -------- 1 (1 row) isclosed(path) 描述:图形是否为闭合路径。 返回类型:Boolean 示例: 1 2 3 4 5 gaussdb=# SELECT isclosed(path '((0,0),(1,1),(2,0))') AS RESULT; result -------- t (1 row) isopen(path) 描述:图形是否为开放路径。 返回类型:Boolean 示例: 1 2 3 4 5 gaussdb=# SELECT isopen(path '[(0,0),(1,1),(2,0)]') AS RESULT; result -------- t (1 row) length(object) 描述:计算图形的长度。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT length(path '((-1,0),(1,0))') AS RESULT; result -------- 4 (1 row) npoints(path) 描述:计算路径的顶点数。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT npoints(path '[(0,0),(1,1),(2,0)]') AS RESULT; result -------- 3 (1 row) npoints(polygon) 描述:计算多边形的顶点数。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT npoints(polygon '((1,1),(0,0))') AS RESULT; result -------- 2 (1 row) pclose(path) 描述:把路径转换为闭合路径。 返回类型:path 示例: 1 2 3 4 5 gaussdb=# SELECT pclose(path '[(0,0),(1,1),(2,0)]') AS RESULT; result --------------------- ((0,0),(1,1),(2,0)) (1 row) popen(path) 描述:把路径转换为开放路径。 返回类型:path 示例: 1 2 3 4 5 gaussdb=# SELECT popen(path '((0,0),(1,1),(2,0))') AS RESULT; result --------------------- [(0,0),(1,1),(2,0)] (1 row) radius(circle) 描述:计算圆的半径。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT radius(circle '((0,0),2.0)') AS RESULT; result -------- 2 (1 row) width(box) 描述:计算矩形的水平尺寸。 返回类型:double precision 示例: 1 2 3 4 5 gaussdb=# SELECT width(box '((0,0),(1,1))') AS RESULT; result -------- 1 (1 row)
  • GS_SEG_DATAFILES GS_SEG_DATAFILES查看所有表空间的数据文件信息。只支持管理员权限用户查询。 表1 GS_SEG_DATAFILES字段 名称 类型 描述 node_name text 节点名称。 file_name text 数据文件名,例如,base/17467/2_fsm。 file_id integer 数据文件标识。取值范围:[1,5]的int4值。 bucketnode integer 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum integer 段对象的分支类型。取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 tablespace_name name 数据文件所属的表空间名称。 contents text 数据文件的存储内容。取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 extent_size integer 数据文件的扩展大小。 meta_blocks bigint 数据文件已分配的元页面数。 data_blocks bigint 数据文件已分配的数据页面数。 total_blocks bigint 数据文件的总物理页面数。 high_water_mark bigint 数据文件使用页数的高水位线。 utilization real 使用的block数占总block数的百分比,即(data_blocks+meta_blocks)/total_blocks。 父主题: 段页式存储
  • 连接参数 表1 连接参数 参数 描述 host 要连接的主机名。如果主机名以斜杠开头,则它声明使用Unix域套接字通讯而不是TCP/IP通讯,该值就是套接字文件所存储的目录。如果没有声明host,那么默认是与位于/tmp目录(或者安装GaussDB的时候声明的套接字目录)里面的Unix-域套接字连接。在没有Unix域套接字的机器上,默认与localhost连接。 接受以“,”分割的字符串来指定多个主机名,支持指定多个主机名。 hostaddr 与之连接的主机的IP地址,是标准的IPv4地址格式,比如,172.28.40.9。如果机器支持IPv6,那么也可以使用IPv6的地址。如果声明了一个非空的字符串,那么使用TCP/IP通讯机制。 接受以“,”分割的字符串来指定多个IP地址,支持指定多个IP地址。 使用hostaddr取代host可以让应用避免一次主机名查找,这一点对于那些有时间约束的应用来说可能是非常重要的。不过,GSSAPI或SSPI认证方法要求主机名(host)。因此,应用下面的规则: 如果声明了不带hostaddr的host那么就强制进行主机名查找。 如果声明中没有host,hostaddr的值给出服务器网络地址。如果认证方法要求主机名,那么连接尝试将失败。 如果同时声明了host和hostaddr,那么hostaddr的值作为服务器网络地址。host的值将被忽略,除非认证方法需要它,在这种情况下它将被用作主机名。 须知: 如果host不是网络地址hostaddr处的服务器名,那么认证很有可能失败。 如果主机名(host)和主机地址都没有,那么libpq将使用一个本地的Unix域套接字进行连接,或者是在没有Unix域套接字的机器上,它将尝试与localhost连接。 port 主机服务器的端口号,或者在Unix域套接字连接时的套接字扩展文件名。 接受以“,”分割的字符串来指定多个端口号,支持指定多个端口号。 vimuser 要连接的用户名,缺省是与运行该应用的用户操作系统名同名的用户。 dbname 数据库名,缺省和用户名相同。 password 如果服务器要求密码认证,所用的密码。 connect_timeout 连接的最大等待时间,以秒计(用十进制整数字符串书写),0或者不声明表示无穷。不建议把连接超时的值设置小于2秒。 client_encoding 为这个连接设置client_encoding配置参数。除了对应的服务器选项接受的值,可以使用auto从客户端中的当前环境中确定正确的编码(Unix系统上是LC_CTYPE环境变量)。 tty 忽略(以前,该参数指定了发送服务器调试输出的位置)。 options 添加命令行选项以在运行时发送到服务器。 application_name 为application_name配置参数指定一个值,表明当前用户身份。 fallback_application_name 为application_name配置参数指定一个后补值。如果通过一个连接参数或PGAPPNAME环境变量没有为application_name给定一个值,将使用这个值。在一般工具程序中,若设置一个默认名,但不希望这个默认名被用户覆盖,可以通过指定一个后补值来实现。 keepalives 控制客户端侧的TCP保持激活是否使用。缺省值是1,意思为打开,但是如果不想要保持激活,可以更改为0,意思为关闭。通过Unix域套接字做的连接忽略这个参数。 keepalives_idle 在TCP应该发送一个保持激活的信息给服务器之后,控制不活动的秒数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 keepalives_interval 在TCP保持激活信息没有被应该传播的服务器承认之后,控制秒数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 keepalives_count 控制TCP发送保持激活信息的次数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 tcp_user_timeout 在支持TCP_USER_TIMEOUT套接字选项的操作系统上,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。0值表示使用系统缺省。通过Unix域套接字做的连接忽略这个参数。 tcp_syn_retries 在支持TCP_SYNCNT套接字选项的操作系统上,指定客户端建立连接三次握手阶段SYN包发送失败而重新传输的次数。0值表示使用系统缺省。通过Unix域套接字的连接忽略此参数。 rw_timeout 设置客户端连接读写超时时间。 当libpq侧触发超时且连接关闭时,其下发给数据库侧正在运行的业务会被强制终止。该能力受GUC参数check_disconnect_query控制,设置为on表示支持该能力,设置为off表示不支持该能力。 sslmode 启用SSL加密的方式: disable:不使用SSL安全连接。 allow:如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer:如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。 require:必须使用SSL安全连接,但是只做了 数据加密 ,而并不验证数据库服务器的真实性。 verify-ca:必须使用SSL安全连接,当前windows ODBC不支持cert方式认证。 verify-full:必须使用SSL安全连接,当前windows ODBC不支持cert方式认证。 sslcompression 如果设置为1(默认),SSL连接之上传送的数据将被压缩(这要求OpenSSL版本为0.9.8或更高)。如果设置为0,压缩将被禁用(这要求OpenSSL版本为1.0.0或更高)。如果建立的是一个没有SSL的连接,这个参数会被忽略。如果使用的OpenSSL版本不支持该参数,它也会被忽略。压缩会占用CPU时间,但是当瓶颈为网络时可以提高吞吐量。如果CPU性能是限制因素,禁用压缩能够改进响应时间和吞吐量。 sslcert 这个参数指定客户端SSL证书的文件名。如果没有建立SSL连接,这个参数会被忽略。 sslkey 这个参数指定用于客户端证书的密钥位置。它能够指定一个从外部“引擎”(引擎是OpenSSL的可载入模块)得到的密钥。一个外部引擎说明应该由一个冒号分隔的引擎名称以及一个引擎相关的关键标识符组成。如果没有建立SSL连接,这个参数会被忽略。 sslrootcert 这个参数指定一个包含SSL证书机构(CA)证书的文件名称。如果该文件存在,服务器的证书将被验证是由这些机构之一签发。 sslcrl 这个参数指定SSL证书撤销列表(CRL)的文件名。列在这个文件中的证书如果存在,在尝试认证该服务器证书时会被拒绝。 requirepeer 这个参数指定服务器的操作系统用户,例如requirepeer=postgres。当建立一个Unix域套接字连接时,如果设置了这个参数,客户端在连接开始时检查服务器进程是否运行在指定的用户名之下。如果发现不是,该连接会被一个错误中断。这个参数能被用来提供与TCP/IP连接上SSL证书相似的服务器认证(注意,如果Unix域套接字在/tmp或另一个公共可写的位置,任何用户能启动一个在那里侦听的服务器。使用这个参数来保证所连接的是一个由可信用户运行的服务器)。这个选项只在实现了peer认证方法的平台上支持。 krbsrvname 当用GSSAPI认证时,要使用的Kerberos服务名。为了让Kerberos认证成功,这必须匹配在服务器配置中指定的服务名。 gsslib 用于GSSAPI认证的GSS库。只用在Windows上。设置为gssapi可强制libpq用GSSAPI库来代替默认的SSPI进行认证。 service 用于附加参数的服务名。它指定保持附加连接参数的pg_service.conf中的一个服务名。这允许应用只指定一个服务名,这样连接参数能被集中维护。 authtype 不再使用“authtype”,因此将其标记为“不显示”。将其保留在数组中,以免拒绝旧应用程序中的conninfo字符串,这些应用程序可能仍在尝试设置它。 remote_nodename 指定连接本地节点的远端节点名称。 localhost 指定在一个连接通道中的本地地址。 localport 指定在一个连接通道中的本地端口。 fencedUdfRPCMode 控制fenced UDF RPC协议是使用unix域套接字或特殊套接字文件名。缺省值是0,意思为关闭。使用unix domain socket模式,文件类型为“.s.PGSQL.%d”;但是要使用fenced udf ,文件类型为.s.fencedMaster_unixdomain,可以更改为1,意思为开启。 replication 这个选项决定是否该连接应该使用复制协议而不是普通协议。这是PostgreSQL的复制连接以及pg_basebackup之类的工具在内部使用的协议,但也可以被第三方应用使用。支持下列值,大小写无关: true、on、yes、1 连接进入到物理复制模式。 database 连接进入到逻辑复制模式,连接到dbname参数中指定的数据库。 false、off、no、0 该连接是一个常规连接,这是默认行为。 在物理或者逻辑复制模式中,仅能使用简单查询协议。 backend_version 传递到远端的后端版本号。 prototype 设置当前协议级别,默认:PROTO_TCP。 enable_ce 控制是否允许客户端连接全密态数据库。默认值为0,不开启密态功能。如果需要开启密态等值查询基本能力,则修改为1或者3。 key_info 与enable_ce一起使用,在密态数据库中,用于设置访问外部密钥管理者的参数。 connection_info Connection_info是一个包含driver_name、driver_version、driver_path和os_user的json字符串。 如果不为NULL,使用connection_info 忽略connectionExtraInf。 如果为NULL,生成与libpq相关的连接信息字符串,当connectionExtraInf为false时connection_info只有driver_name和driver_version。 connectionExtraInf 设置connection_info是否存在扩展信息,默认值为0,如果包含其他信息,则需要设置为1。 target_session_attrs 设定连接的主机的类型。主机的类型和设定的值一致时才能连接成功。指定多IP时才会校验此参数。target_session_attrs的设置规则如下: any:可以对所有类型的主机进行连接。 read-write:当连接的主机允许可读可写时,才进行连接。 read-only:仅对可读的主机进行连接。 primary(默认值):仅对主备系统中的主机能进行连接。 standby:仅对主备系统中的备机进行连接。 prefer-standby:首先尝试找到一个备机进行连接。如果对hosts列表的所有机器都连接失败,那么尝试“any”模式进行连接。 父主题: 基于libpq开发
  • SESSION_STAT 当前节点以会话线程或AutoVacuum线程为单位,统计会话状态信息,如表1所示。 表1 SESSION_STAT字段 名称 类型 描述 sessid text 线程启动时间+线程标识。 statid integer 统计编号。 statname text 统计会话名称。 statunit text 统计会话单位。 value bigint 统计会话值。 父主题: Session/Thread
  • PG_STAT_ACTIVITY_NG PG_STAT_ACTIVITY_NG视图显示在当前用户所属的node group下,所有查询的相关信息。具体字段信息如表1所示。 表1 PG_STAT_ACTIVITY_NG字段 名称 类型 描述 datid oid 用户会话在后台连接到的数据库OID。 datname name 用户会话在后台连接到的数据库名称。 pid bigint 后台线程id。 sessionid bigint 会话id。 global_sessionid text 全局会话id。 usesysid oid 登录该后台的用户OID。 usename name 登录该后台的用户名。 application_name text 连接到该后台的应用名。 client_addr inet 连接到该后台的客户端的IP地址。 如果该字段取值是null,表明是通过服务器机器上UNIX套接字连接客户端或者这是内部线程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后台通讯的TCP端口号,如果使用Unix套接字,则为-1。 backend_start timestamp with time zone 该会话开始的时间,即当客户端连接服务器的时间。 xact_start timestamp with time zone 当前活跃事务开始的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 query_start timestamp with time zone 当前活跃查询开始的时间, 如果state的值不是active,则这个值是上一个查询的开始时间。如果是存储过程、函数或package,则显示的是第一个查询时间,不会随着存储过程内语句运行而改变。 state_change timestamp with time zone 上次状态改变的时间。 waiting boolean 如果后台当前正等待锁则为true。否则为false。 enqueue text 语句当前排队状态。可能值是: waiting in queue:表示语句在排队中。 空:表示语句正在运行。 state text 该后台当前总体状态。可能值是: active:后台正在执行一个查询。 idle:后台正在等待一个新的客户端命令。 idle in transaction:后台在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后台在事务中,但事务中有语句执行失败。 fastpath function call:后台正在执行一个fast-path函数。 disabled:如果后台禁用track_activities,则报告这个状态。 说明: 普通用户只能查看到自己账户所对应的会话状态。即其他账户的state信息为空。例如以judy用户连接数据库后,在pg_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pg_stat_activity_ng; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- testdb | omm | 10 | | 139968752121616 testdb | omm | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 testdb | omm | 10 | | 139968643069712 testdb | omm | 10 | | 139968680818448 testdb | joe | 16390 | | 139968563377936 (6 rows) resource_pool name 用户使用的资源池。 query_id bigint 查询语句的id。 query text 该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 node_group text 语句所属用户对应的node group。 父主题: 其他系统视图
  • PV_SESSION_MEMORY_DETAIL PV_SESSION_MEMORY_DETAIL视图显示会话的内存使用情况,以MemoryContext节点来统计。当开启线程池(enable_thread_pool = on)时,该视图包含所有的线程和会话的内存使用情况。 其中内存上下文“TempSmallContextGroup”,记录当前线程中所有内存上下文字段“totalsize”小于8192字节的信息汇总,并且内存上下文统计计数记录到“usedsize”字段中。所以在视图中,“TempSmallContextGroup”内存上下文中的“totalsize”和“freesize”是该线程中所有内存上下文“totalsize”小于8192字节的汇总总和,“usedsize”字段表示统计的内存上下文个数。 可通过SELECT * FROM PV_SESSION_MEMCTX_DETAIL(threadid, '');将某个线程所有内存上下文信息记录到$GAUSSLOG/gs_log/${node_name}/dumpmem目录下的threadid_timestamp.log文件中。其中threadid可通过表1sessid中获得。 表1 PV_SESSION_MEMORY_DETAIL字段 名称 类型 描述 sessid text 关闭线程池(enable_thread_pool = off)时该字段表示线程启动时间+session标识(字符串信息为timestamp.sessionid)。 开启线程池(enable_thread_pool = on)时,内存上下文是线程级别的,则对应的该字段表示线程启动时间+线程标识(字符串信息为timestamp.threadid),内存上下文是session级别的,则对应的该字段表示线程启动时间+session标识(字符串信息为timestamp.sessionid)。 sesstype text 线程名称。 contextname text 内存上下文名称。 level smallint 当前上下文在整体内存上下文中的层级。 parent text 父内存上下文名称。 totalsize bigint 当前内存上下文的内存总数,单位Byte。 freesize bigint 当前内存上下文中已释放的内存总数,单位Byte。 usedsize bigint 当前内存上下文中已使用的内存总数,单位Byte;“TempSmallContextGroup”内存上下文中该字段含义为统计计数。 该视图为运维视图,用于定位内存问题时使用,不要并发查询该视图,并发查询该视图会随着并发数的增多导致新连接接入等待时间增加,长时间无法接入。 父主题: 其他系统视图
  • 参数说明 @queryblock请参见指定Hint所处的查询块Queryblock章节,可省略,表示在当前查询块生效,该hint只在指定为最外层的queryblock时才会生效。 param:表示参数名。 value:表示参数的取值。 目前支持使用hint设置生效的参数有: 布尔类: enable_bitmapscan、enable_hashagg、enable_hashjoin、enable_indexscan、enable_indexonlyscan、enable_gsiscan、enable_gsitablescan、enable_material、enable_mergejoin、enable_nestloop、enable_index_nestloop、enable_seqscan、enable_sort、enable_tidscan、enable_stream_operator、enable_stream_recursive、enable_broadcast、enable_fast_query_shipping、enable_trigger_shipping、enable_remotejoin、enable_remotegroup、enable_remotelimit、enable_remotesort、enable_inner_unique_opt、enable_invisible_indexes 整型类: best_agg_plan,query_dop 浮点类: cost_weight_index、default_limit_rows、seq_page_cost、random_page_cost、cpu_tuple_cost、cpu_index_tuple_cost、cpu_operator_cost、effective_cache_size 枚举类: try_vector_engine_strategy 字符串类: node_name 通过设置node_name可以指定当前的sql下发到node_name对应的DN上去执行。 示例: select /*+ set(node_name datanode1) */ from table_name; 其中,datanode1是从pgxc_node系统表里查询出的数据节点的名称(不用加引号),table_name是表名。该查询表示直接去datanode1上执行查询。 node_name只支持在select语句里设置,如果在其他语句里设置将不生效。 node_name只支持设置data node名字,不支持设置coodninator名字。 node_name不支持通过SET语句进行修改,只能用在plan hint里。 node_name不支持通过gs_guc进行修改。 node_name仅支持简单查询语句,不支持带union,union all子查询,多表关联等复杂查询语句。 支持普通用户执行。 不支持与行级访问控制同时使用,同时使用会报错。 设置不在白名单中的参数,参数取值不合法,或hint语法错误时,不会影响查询执行的正确性。使用explain(verbose on)执行可以看到hint解析错误的报错提示。 GUC参数的hint只在最外层查询生效,子查询内的GUC参数hint不生效。 视图定义内的GUC参数hint不生效。 CREATE TABLE ... AS ...查询最外层的GUC参数hint可以生效。
  • PG_COMM_RECV_STREAM PG_COMM_RECV_STREAM视图展示单个DN上所有的通信库接收流状态。 表1 PG_COMM_RECV_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态。 UNKNOWN:当前逻辑连接状态未知。 READY:逻辑连接已就绪。 RUN:逻辑连接发送报文正常。 HOLD:逻辑连接发送报文等待中。 CLOSED:关闭逻辑连接。 TO_CLOSED:表示将会关闭逻辑连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 recv_bytes bigint 通信流接收的数据总量。单位:Byte。 time bigint 通信流当前生命周期使用时长。单位:ms。 speed bigint 通信流的平均接收速率。单位:Byte/s。 quota bigint 通信流当前的通信配额值。单位:Byte。 buff_usize bigint 通信流当前缓存的数据大小。单位:Byte。 父主题: 通信
  • BGWRITER_STAT BGWRITER_STAT视图显示关于后端写线程活动的统计信息,如表1所示。 表1 BGWRITER_STAT字段 名称 类型 描述 checkpoints_timed bigint 执行的定期检查点数。 checkpoints_req bigint 执行的需求检查点数。 checkpoint_write_time double precision 在检查点处理过程中执行写入操作所花费的总时间,单位为毫秒。 checkpoint_sync_time double precision 在检查点处理过程中执行同步(sync)操作所花费的总时间,单位为毫秒。 buffers_checkpoint bigint 检查点写缓冲区的数量。 buffers_clean bigint BGWRITER线程写缓冲区的数量。 maxwritten_clean bigint BGWRITER线程停止清理扫描过程的次数(由于单次扫描刷页数量过多导致)。 buffers_backend bigint 后端直接写缓冲区的数量。 buffers_backend_fsync bigint 后端线程自行执行fsync的次数(通常情况下fsync调用由BGWRITER线程执行)。 buffers_alloc bigint 分配的缓冲区数量。 stats_reset timestamp with time zone 本行统计信息上次被重置的时间。 父主题: Utility
共100000条