返回首页

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

更新日期:2024年09月11日

参数说明:设置客户端的字符编码类型。
请根据前端业务的情况确定。尽量客户端编码和服务器端编码一致,提高效率。
该参数属于USERSET 类型参数,请参考表GUC 参数设置方式中对应设置方法进行设
置。
取值范围:兼容PostgreSQL 所有的字符编码类型。其中UTF8 表示使用数据库的字符
编码类型。
说明:
- 使用命令locale -a 查看当前系统支持的区域和相应的编码格式,
并可以选择进行设置。
- 默认情况下,gs_initdb 会根据当前的系统环境初始化此参数,通过locale 命令可以查
看当前的配置环境。
- 参数建议保持默认值,
不建议通过gs_guc 工具或其他方式直接在postgresql.conf 文件
中设置client_encoding 参数,即使设置也不会生效,以保证GBase 8c 内部通信编码格式一
致。
默认值:UTF8
推荐值:SQL_ASCII/UTF8

语法

更改名称
ALTER RESOURCE POOL [vc_name.] RENAME [TO]
;

更改参数
ALTER RESOURCE POOL [vc_name.] SET (pool_attribute=value [, ...]);
其中,pool_attribute 的value 值可以为:
[ priority={1|2|3|4|5|6|7|8 } ]
[ cpu_percent=integer ]
[ max_memory=integer ]

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
484
[ max_temp_diskspace=integer ]
[ max_disk_space=integer ]
[ max_disk_writeio= integer ]
[ max_disk_readio=integer ]
[ max_activetask=integer ]
[ task_max_parallel_degree=integer ]
[ task_waiting_timeout=integer ]
[ task_running_timeout=integer ]
示例

更改名称
ALTER RESOURCE POOL resource_pool_1 RENAME resource_pool_2;

更改参数
ALTER RESOURCE POOL resource_pool_2 SET (cpu_percent=20);

更新游标允许您删除或更新当前行;即,最近访存的行。使用 GBase 8s ESQL/C 编写的下
列示例展示更新游标的声明:
EXEC SQL
DECLARE names CURSOR FOR
SELECT fname, lname, company
FROM customer
FOR UPDATE;
使用此游标的程序可以常规的方法访存行。
EXEC SQL
FETCH names INTO :FNAME, :LNAME, :COMPANY;
如果该程序然后决定需要修改该行,则它可这么做。
if (strcmp(COMPANY, "SONY") ==0)
{
EXEC SQL
UPDATE customer
SET fname = 'Midori', lname = 'Tokugawa'
WHERE CURRENT OF names;
}
关键字 CURRENT OF names 替代 WHERE 子句中的常规测试表达式。在其他方面,
UPDATE 语句保持不变,
即使包括表名称的规范,
在游标名称中其为隐式的,
但仍然需要。

关键字 UPDATE 的用途
游标中的关键字 UPDATE 的用途是让数据库服务器可更新(或删除)它访存的任何行。
数据库服务器在通过更新游标访存的行上放置较多的需求锁,而当它访存未使用那个关键
字声明的游标的行时,放置较少的需求锁。此操作使常规的游标有较好的性能,以及在多
处理系统中更高的并发使用级别。(对多用户环境编程 讨论锁和并发使用的级别。)

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 240 -

更新特定的列
下列示例已更新了前面的更新游标示例的特定的列:
EXEC SQL
DECLARE names CURSOR FOR
SELECT fname, lname, company, phone
INTO :FNAME,:LNAME,:COMPANY,:PHONE FROM customer
FOR UPDATE OF fname, lname
END-EXEC.
仅可通过此游标更新 fname 和 lname 列。作为错误拒绝如下语句:
EXEC SQL
UPDATE customer
SET company = 'Siemens'
WHERE CURRENT OF names
END-EXEC.
如果程序尝试这样的更新,则返回错误代码且不发生更新。由于删除影响所有列,因此,
也拒绝使用 WHERE CURRENT OF 的删除尝试。

不总是需要的 UPDATE 关键字
SQL 的 ANSI 标准不提供游标定义中的 FOR UPDATE 子句。当程序使用符合 ANSI 的
数据库时,它可使用任何游标来更新或删除。