返回首页

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

更新日期:2024年09月11日

plog_merge_age
参数说明:该参数用于控制性能日志数据输出的周期。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
须知:
该参数以毫秒为单位,建议在使用过程中设置值为1000 的整数倍,即设置值以秒为最
小单位。
该参数所控制的性能日志文件以prf 为扩展名,
文件放置在$GAUSSLOG/gs_profile/
目录下面,其中node_name 是由postgres.conf 文件中的pgxc_node_name 的值,不建议外部
使用该参数。
取值范围:0~2147483647,单位为毫秒(ms)。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1280
当设置为0 时,当前会话不再输出性能日志数据。
当设置为非0 时,
当前会话按照指定
的时间周期进行输出性能日志数据。
该参数设置得越小,输出的日志数据越多,对性能的负面影响越大。
默认值:0

动态调用匿名块是指在动态语句中执行匿名块,
使用EXECUTE IMMEDIATE…USING
语句后面带IN、OUT 来输入、输出参数。

(1 row)

delta
描述:返回当前行和前一行的差值。
参数:numeric
返回值类型:numeric
checksum(expression)
描述:返回所有输入值的CHECKSUM 值。使用该函数可以用来验证GBase 8c 数据库
(不支持GBase 8c 之外的其他数据库)的备份恢复或者数据迁移操作前后表中的数据是否
相同。在备份恢复或者数据迁移操作前后都需要用户通过手工执行SQL 命令的方式获取执
行结果,通过对比获取的执行结果判断操作前后表中的数据是否相同。
对于大表,CHECKSUM 函数可能会需要很长时间。
如果某两表的CHECKSUM 值不同,
则表明两表的内容是不同的。
由于CHECKSUM 函
数中使用散列函数不能保证无冲突,
因此两个不同内容的表可能会得到相同的CHECKSUM
值,存在这种情况的可能性较小。对于列进行的CHECKSUM 也存在相同的情况。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
351

对于时间类型timestamp, timestamptz 和smalldatetime,
计算CHECKSUM 值时请确
保时区设置一致。

若计算某列的CHECKSUM 值,
且该列类型可以默认转为TEXT 类型,
则expression
为列名。

若计算某列的CHECKSUM 值,
且该列类型不能默认转为TEXT 类型,
则expression
为列名::TEXT。

若计算所有列的CHECKSUM 值,则expression 为表名::TEXT。
可以默认转换为TEXT 类型的类型包括:
char、
name、int8、int2、int1、int4、raw、
pg_node_tree、float4、float8、bpchar、varchar、nvarchar、nvarchar2、date、timestamp、
timestamptz、numeric、smalldatetime,其他类型需要强制转换为TEXT。
返回类型:numeric。
示例:
表中可以默认转为TEXT 类型的某列的CHECKSUM 值。

gbase=# SELECT CHECKSUM(inv_quantity_on_hand) FROM public.inventory;

checksum

-------------------

24417258945265247

(1 row)
表中不能默认转为TEXT 类型的某列的CHECKSUM 值。注意此时CHECKSUM 参数
是列名::TEXT。

gbase=# SELECT CHECKSUM(inv_quantity_on_hand::TEXT) FROM public.inventory;

checksum

-------------------

24417258945265247

(1 row)
表中所有列的CHECKSUM 值。注意此时CHECKSUM 参数是表名::TEXT,且表名前
不加Schema。
gbase=# SELECT CHECKSUM(inventory::TEXT) FROM public.inventory;

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
352

checksum

-------------------

25223696246875800

(1 row)

first(anyelement)
描述:返回排序后第一个非NULL 值。
返回类型:anyelement
gbase=# select * from tba;
name
-----
A
A
B
D
(4 rows)
gbase=# select first("name" order by "name") as name from tba;
first
-----
A
(1 rows)

last(anyelement)
描述:返回排序后最后一个非NULL 值。
返回类型:anyelement
gbase=# select * from tba;
name
-----
A
A
B
D
(4 rows)
gbase=# select last("name" order by "name") as name from tba;
last

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
353
-----
D
(1 rows)

mode() within group (order by value anyelement)
描述:返回某列中出现频率最高的值,如果多个值频率相同,则返回最小的那个值。排
序方式和该列类型的默认排序方式相同。其中value 为输入参数,可以为任意类型。
返回类型:与输入参数类型相同。
示例:
gbase=# select mode() within group (order by value) from (values(1, 'a'), (2,
'b'), (2, 'c')) v(value, tag);
mode
------
2
(1 row)
gbase=# select mode() within group (order by tag) from (values(1, 'a'), (2, 'b'),
(2, 'c')) v(value, tag);
mode
------
a
(1 row)

json_agg(any)
描述:将值聚集为json 数组。
返回类型:array-json
示例:
gbase=# select * from classes;
name | score
-----+-------
A
|
2
A
|
3
D
|
5
D
|
(4 rows)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
354
gbase=# select name, json_agg(score) score from classes group by name order by
name;
name |
score
-----+-----------------
A
| [2, 3]
D
| [5, null]
(2 rows)

json_object_agg(any, any)
描述:将值聚集为json 对象。
返回类型:object-json
示例:
gbase=# select * from classes;
name | score
-----+-------
A
|
2
A
|
3
D
|
5
D
|
(4 rows)
gbase=# select json_object_agg(name, score) from classes group by name order
by name;
json_object_agg
-------------------------
{ "A" : 2, "A" : 3 }
{ "D" : 5, "D" : null }
(2 rows)