返回首页

gbase数据、南大通用产品文档:GBase8sEXPLAIN_STAT 配置参数

更新日期:2024年09月11日

使用 EXPLAIN_STAT 配置参数来启用或禁用在解释输出文件中包括“查询统计信息”部分。

您可通过使用 SET EXPLAIN 语句或 onmode -Y sessionid 命令生成输出文件。当您启用
EXPLAIN_STAT 配置参数时,在“查询计划”中“查询统计信息”部分显示预计的行数和返
回的实际行数。
onconfig.std 值
EXPLAIN_STAT 1

0 = 禁用在解释输出文件中包含“查询统计信息”部分。
1 = 启用在解释输出文件中包含“查询统计信息”部分。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。


GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 370 -
可以使用 onmode -p 命令动态地添加或移除数据库服务器实例的虚拟管理器。onmode -p
命令不会修改 onconfig 文件,
语法:

元素
用途
关键注意事项
-p number 添加或移除虚拟处理器。
number 参数指示要添加或
删除的虚拟处理器的数量。

如果该值是负整数,那么
删除处理器。如果该值时
正整数,
那么添加处理器。

仅当数据库服务器处于联机方式时才能使用 -p
选项,且一次只能添加一类虚拟处理器。
有关更多详细信息,
请参阅 添加和删除虚拟处
理器的规则。
如果正在删除虚拟处理器,那么最大数不能超
过指定类型的实际处理器数量。如果正在添加
虚拟处理器,那么最大数依赖于操作系统。
有关更多信息,请参阅 GBase 8s 管理员指南
中的使用虚拟处理器一章。
ADT
运行审计处理过程
当通过设置 ONCONFIG 文件中的 ADTMODE 参数
开启审计方式时,数据库服务器在审计类里开始

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 371 -
元素
用途
关键注意事项
虚拟处理器
AIO
对格式化的磁盘空间执行
非日志记录磁盘 I/O
如果内核异步 I/O (KAIO) 未使用,那么还对原
始磁盘空间执行非日志记录I/O
BTS
运行基本文本搜索索引操
作和查询
BTS 虚拟处理器是非放弃的。如果想要同时运行
多个基本文本搜索,
那么指定多个 BTS 虚拟处理
器。 使用 onconfig 文件中的 VPCLASS 参数创
建至少一个 BTS 虚拟处理器。
更多有关基本文本搜索查询的信息,请参阅
GBase 8s 数据库扩展用户指南
CPU
运行所有会话线程和一些
系统线程
建议 CPU VP 的数量不要大于物理处理器的数
量。如果使用了 KAIO ,那么对原始磁盘空间执
行 I/O ,包括对物理和逻辑日志的 I/O 。可用
时运行 KAIO 线程或运行单个轮询线程。数据库
服务器将 CPU VP 数用于为并行数据库查询
(PDQ) 分配资源。如果删除 CPU
VP,查询运行将
显著减慢。 onstat -g mgm 输出的 Reinit字段
显示有关在 onmode -p 命令之后等待正在运行
的查询完成的查询数量的信息。另见 GBase 8s
性能指南
ENCRYPT
执行列级别的加密和解密
例程
指定更多 ENCRYPT 虚拟处理器
(如果您有多个加
密的列)
JVP
在 Java™ 虚拟机
(JVM)

执行 Java 用户定义的例

如果正在运行许多 Java UDR ,那么指定更多
JVP
LIO
如果在格式化的磁盘空间
中,
那么写入逻辑日志文件

只有在逻辑日志位于镜像数 dbspace 中时才使
用 2 个 LIO 虚拟处理器。数据库服务器最多允
许 2 个 LIO 虚拟处理器
MSC
管理需要大量的堆栈空间
用于杂项内部任务

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 372 -
元素
用途
关键注意事项
的系统调用的请求
PIO
如果在格式化的磁盘空间
中,
那么写入物理日志文件

只有在物理日志位于镜像数 dbspace 中时才使
用 2 个 PIO 虚拟处理器。数据库服务器最多允
许 2 个 PIO 虚拟处理器
SOC
使用 sockets 来执行网络
通信
只能在数据库服务器通过 scokets 配置网络通
信时,使用 SOC 虚拟处理器
STR
执行流管道连接

vpclass
给出用户自定义的虚拟处
理器类的名称
使用 onconfig 中的 VPCLASS 参数定义用户自
定义虚拟处理器类。如果想要运行多个 UDR,那
么可以指定多个用户自定义处理器。
在 Windows™ 上,同一时刻只能有一个用户自
定义虚拟处理器类。省略 onmode -p vpclass
命令中的 number 参数。
更多有关扩展类的信息,
请参阅 VPCLASS 配置
参数

添加和删除虚拟处理器的规则
可以添加和删除虚拟处理器。
请应用以下规则:
 您不能删除最后的虚拟处理器。至少保留一台虚拟处理器。
 您不能添加或删除 ADM 或 OPT。
 仅限 Windows™ : 可以添加任意类的虚拟处理器,但不能删除虚拟处理器。
下列是可添加或删除的虚拟处理器:
虚拟处理器名称 添加 删除
ADT
Yes No
AIO
Yes No
BTS
Yes Yes

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 373 -
虚拟处理器名称 添加 删除
CPU
Yes Yes
ENCRYPT
Yes Yes
JVP
Yes Yes
LIO
Yes1 No
MSC
Yes No
PIO
Yes1 No
SOC
Yes No
STR
Yes No
vpclass
Yes Yes
表注:1. 您可以添加多个虚拟处理器。
使用 onstat 实用程序监视轮询线程
当数据库服务器联机时,不能删除正在运行轮询线程的 CPU 虚拟处理器。要确定在 CPU
虚拟处理器上运行的轮询线程,请使用以下命令:
onstat -g ath | grep 'cpu.*poll'
以下 onstat -g ath 输出显示了带有轮询线程的 2 个 CPU 虚拟处理。在这情况下,不能降
到低于 2 个 CPU 虚拟处理器。
tid tcb rstcb prty status vp-class name
8 a362b90 0 2 running 1cpu tlitcppoll
9 a36e8e0 0 2 cond wait arrived 3cpu
status 字段包含下列信息:running 、cond
wait 、IO
Idle 、IO
Idle 、sleeping
secs:
number_of_seconds 或 sleeping forever。为了提高性能,可以移除或减少标识为
sleeping forever 线程的数量。
有关处理器类型的信息,请参阅 GBase 8s 管理员指南 中的虚拟处理器和线程一章。
该命令有等同的 SQL 管理 API 函数。

MOT 错误消息
错误可能由多种场景引起。所有错误都记录在数据库服务器日志文件中。
此外,与用户
相关的错误作为对查询、
事务或存储过程执行或数据库管理操作的响应的一部分返回给用户。

服务器日志中报告的错误包括函数、实体、上下文、错误消息、错误描述和严重性。

向用户报告的错误被翻译成标准PostgreSQL 错误码,可能由MOT 特定的消息和描述
组成。
错误提示、错误描述和错误码见下文。该错误码实际上是内部代码,
不记录也不返回给
用户。
写入日志文件的错误
所有错误都记录在数据库服务器日志文件中。
以下列出了写入数据库服务器日志文件但
未返回给用户的错误。该日志位于data 文件夹中,命名为postgresql-DATE-TIME.log。
表13- 1 只写入日志文件的错误
日志消息
内部错误代码
Error code denoting success
MOT_NO_ERROR 0
Out of memory
MOT_ERROR_OOM 1
Invalid configuration
MOT_ERROR_INVALID_CFG 2
Invalid argument passed to function
MOT_ERROR_INVALID_ARG 3
System call failed
MOT_ERROR_SYSTEM_FAILURE 4
Resource limit reached
MOT_ERROR_RESOURCE_LIMIT 5

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
474
Internal logic error
MOT_ERROR_INTERNAL 6
Resource unavailable
MOT_ERROR_RESOURCE_UNAVAILABLE 7
Unique violation
MOT_ERROR_UNIQUE_VIOLATION 8
Invalid memory allocation size
MOT_ERROR_INVALID_MEMORY_SIZE 9
Index out of range
MOT_ERROR_INDEX_OUT_OF_RANGE 10
Error code unknown
MOT_ERROR_INVALID_STATE 11
返回给用户的错误
下面列出了写入数据库服务器日志文件并返回给用户的错误。
MOT 使用返回码(Return Code,RC)返回Postgres 标准错误代码至封装。某些RC 会
导致向正在与数据库交互的用户生成错误消息。
MOT 从内部返回Postgres 代码(见下文)
到数据库包,
数据库封装根据标准的Postgres
行为对其做出反应。
提示信息中的%s、%u、%lu 指代相应的错误信息(如查询、表名或其他信息)。

%s:字符串

%u:数字

%lu:数字
表13- 2 返回给用户并记录到日志文件的错误
返回给用户的短/长描述
Postgres 代码
内部错误码
Success.
Denotes success
ERRCODESUCCESSFUL
COMPLETION
RC_OK = 0
Failure
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_ERROR = 1
Unknown error has occurred.
Denotes aborted operation.
ERRCODE_FDW_ERROR
RC_ABORT

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
475
返回给用户的短/长描述
Postgres 代码
内部错误码
Column definition of %s is
not supported.
Column type %s is not
supported yet.
ERRCODE_INVALID_COL
UMN_DEFINITION
RC_UNSUPPORTED_COL_
TYPE
Column definition of %s is
not supported.
Column type Array of %s is
not supported yet.
ERRCODE_INVALID_COL
UMN_DEFINITION
RC_UNSUPPORTED_COL_
TYPE_ARR
Column size %d exceeds max
tuple size %u.
Column definition of %s is
not supported.
ERRCODE_FEATURE_NOT
_SUPPORTED
RC_EXCEEDS_MAX_ROW
_SIZE
Column name %s exceeds
max name size %u.
Column definition of %s is
not supported.
ERRCODE_INVALID_COL
UMN_DEFINITION
RC_COL_NAME_EXCEED
S_MAX_SIZE
Column size %d exceeds max
size %u.
Column definition of %s is
not supported.
ERRCODE_INVALID_COL
UMN_DEFINITION
RC_COL_SIZE_INVLALID
Cannot create table.
Cannot add column %s; as
the number of declared
columns exceeds the
maximum declared columns.
ERRCODE_FEATURENOT
SUPPORTED
RC_TABLE_EXCEEDSMA
X
DECLARED_COLS
Cannot create index.
Total column size is greater
than maximum index
size %u.
ERRCODE_FDW_KEYSIZE
EXCEEDS_MAX_ALLOWE
D
RC_INDEX_EXCEEDS_MA
X_SIZE

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
476
返回给用户的短/长描述
Postgres 代码
内部错误码
Cannot create index.
Total number of indexes for
table %s is greater than the
maximum number of indexes
allowed %u.
ERRCODE_FDW_TOOMA
NY
INDEXES
RC_TABLE_EXCEEDS_MA
X_INDEXES
Cannot execute statement.
Maximum number of DDLs
per transaction reached the
maximum %u.
ERRCODE_FDW_TOOMA
NY
DDL_CHANGESIN
TRANSACTIONNOT
ALLOWED
RC_TXN_EXCEEDS_MAX
_DDLS
Unique constraint violation
Duplicate key value violates
unique constraint \“%s\“”.
Key %s already exists.
ERRCODEUNIQUE
VIOLATION
RC_UNIQUE_VIOLATION
Table \“%s\” does not exist.
ERRCODE_UNDEFINED_T
ABLE
RC_TABLE_NOT_FOUND
Index \“%s\” does not exist.
ERRCODE_UNDEFINED_T
ABLE
RC_INDEX_NOT_FOUND
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_LOCAL_ROW_FOUND
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_LOCAL_ROW_NOT_F
OUND
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_LOCAL_ROW_DELET
ED
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_INSERT_ON_EXIST
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_INDEX_RETRY_INSER
T
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_INDEX_DELETE

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
477
返回给用户的短/长描述
Postgres 代码
内部错误码
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_LOCAL_ROW_NOT_VI
SIBLE
Memory is temporarily
unavailable.
ERRCODE_OUT_OF_LOGI
CAL_MEMORY
RC_MEMORY_ALLOCATI
ON_ERROR
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_ILLEGAL_ROW_STAT
E
Null constraint violated.
NULL value cannot be
inserted into non-null
column %s at table %s.
ERRCODE_FDW_ERROR
RC_NULL_VIOLATION
Critical error.
Critical error: %s.
ERRCODE_FDW_ERROR
RC_PANIC
A checkpoint is in progress –
cannot truncate table.
ERRCODE_FDW_OPERATI
ON_NOT_SUPPORTED
RC_NA
Unknown error has occurred.
ERRCODE_FDW_ERROR
RC_MAX_VALUE

-
ERRCODE_CONFIG_FILE_
ERROR

-
ERRCODE_INVALIDTABL
E
DEFINITION
Memory engine – Failed to
perform commit prepared.
-
ERRCODE_INVALIDTRAN
SACTION
STATE
Invalid option