返回首页

gbase数据、南大通用产品文档:GBase8athread_cache_size

更新日期:2024年09月11日

功能
这个参数的值表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓
存中还有空间,那么客户端的线程将被放到缓存中。

如果线程重新被请求,那么请求将从缓存中读取;

如果缓存中是空的或者是新的请求,那么这个线程将被重新创建;

如果有很多新的线程,增加这个值可以改善系统性能。
这个参数默认值是0。

功能描述
ALTER SYSTEM SET 命令用于设置POSTMASTER、
SIGHUP、
BACKEND 级别的GUC
参数。此命令会将参数写入配置文件,不同级别生效方式有所不同。
注意事项
此命令仅限初始用户和拥有sysadmin 权限的用户才可使用。
不同级别GUC 参数生效时间如下:

POSTMASTER 级别的GUC 参数需要重启后才生效。

BACKEND 级别的GUC 参数需要会话重新连接后才生效。

SIGHUP 级别的GUC 参数立即生效(需要等待线程重新加载参数,实际略微有延
迟)

通过配置audit_set_parameter 参数,可以配置此操作是否被审计。
操作可被备机同步。
同gs_guc 一致,并不关注数据库是主或备节点、是否只读。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
753
不可在事务中执行,因为此操作无法被回滚。
部分参数只能由初始用户修改,具体如下:
audit_copy_exec, audit_data_format, audit_database_process, audit_directory,
audit_dml_state,
audit_dml_state_select, audit_enabled, audit_file_remain_threshold, audit_file_remain_time,
audit_function_exec, audit_grant_revoke, audit_login_logout, audit_resource_policy,
audit_rotation_interval, audit_rotation_size, audit_set_parameter, audit_space_limit,
audit_system_object, audit_user_locked, audit_user_violation,
asp_log_directory, config_file, data_directory, enable_access_server_directory,
enable_copy_server_files, external_pid_file, hba_file, ident_file, log_directory,
perf_directory,
query_log_directory, ssl_ca_file, ssl_cert_file, ssl_crl_file, ssl_key_file,
stats_temp_directory,
unix_socket_directory, unix_socket_group, unix_socket_permissions,
krb_caseins_users, krb_server_keyfile, krb_srvname, allow_system_table_mods,
enableSeparationOfDuty,
modify_initial_password, password_encryption_type, password_policy
语法格式
ALTER SYSTEM SET { GUC_name } TO { GUC_value };
参数说明

GUC_name
GUC 参数名。

GUC_value
GUC 参数值。
示例
--设置SIGHUP 级别参数audit_enabled。
gbase=# alter system set audit_enabled to off;

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
754
ALTER SYSTEM SET
gbase=# show audit_enabled;
audit_enabled
---------------
off
(1 row)
--设置POSTMASTER 级别参数enable_thread_pool,将在重启之后生效。
gbase=#alter system set enable_thread_pool to on;
NOTICE:
please restart the database for the POSTMASTER level parameter to take effect.
ALTER SYSTEM SET

背景信息
数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。
例行重建
索引,可有效的提高查询效率。
数据库支持的索引类型为B-tree 索引,例行重建索引可有效的提高查询效率。
如果数据发生大量删除后,索引页面上的索引键将被删除,导致索引页面数量的减少,
造成索引膨胀。重建索引可回收浪费的空间。
新建的索引中逻辑结构相邻的页面,
通常在物理结构中也是相邻的,
所以一个新建的索
引比更新了多次的索引访问速度要快。
重建索引
重建索引有以下两种方式。选其中之一即可。
先运行DROP
INDEX 语句删除索引,再运行CREATE
INDEX 语句创建索引。
在删除索引过程中,会在父表上增加一个临时排他锁,
阻止相关读写操作。在创建索引
过程中,会锁住写操作但是不会锁住读操作,此时读操作只能使用顺序扫描。
使用REINDEX 语句重建索引。

使用REINDEX TABLE 语句重建索引,会在重建过程中增加排他锁,阻止相关读
写操作。

使用REINDEX INTERNAL TABLE 语句重建desc 表
(包括列存表的cudesc 表)的
索引,会在重建过程中增加排他锁,阻止相关读写操作。
操作步骤
重建索引有以下两种方式。根据实际情况选一即可。

GBase 8c 管理员指南
南大通用数据技术股份有限公司
45
以导入表“areaS”上的“area_id”字段存在普通索引“areaS_idx”为例。
方式一删除索引再创建
先运行DROP INDEX 语句删除索引,再运行CREATE INDEX 语句创建索引。
步骤1 删除索引。
postgres=# DROP INDEX areaS_idx;
DROP INDEX
步骤2 创建索引。
postgres=# CREATE INDEX areaS_idx ON areaS (area_id);
CREATE INDEX
方式二使用REINDEX 重建
- 使用REINDEX TABLE 语句重建索引。
postgres=# REINDEX TABLE areaS;
REINDEX
- 使用REINDEX INTERNAL TABLE 重建desc 表(包括列存表的cudesc 表)的索引。
postgres=# REINDEX INTERNAL TABLE areaS;
REINDEX
在重建索引前,用户可以通过临时增大maintenance_work_mem 和psort_work_mem 的
取值,来加快索引的重建。