返回首页

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

更新日期:2024年09月11日

 摘要:
对于最近的语句,返回结果行的数目。
 语法:
unsigned int gbase_stmt_field_count(GBASE_STMT *stmt);
 参数:
 返回值:
表示结果集中行数的无符号整数。

功能说明
快速UPDATE 模式,
即先删除符合更新条件的数据,
然后再向表的末尾插入需要
更新的新数据。
相对于传统的行存储数据库来说,
列存储的数据中UPDATE 更新少量行时,
操作
效率相对来说是耗时的,
因此,
GBase 8a MPP Cluster 针对此特点,
专门设计了快
速UPDATE 模式,用以提高数据更新操作。
快速UPDATE 模式目前只支持针对表对象的操作。
要使用快速UPDATE 模式,必须在客户端使用SET gbase_fast_update =1;的命令
打开快速UPDATE 模式。更新批量数据的时候建议使用默认UPDATE 模式,更
新少量数据的时候建议使用快速UPDATE 模式。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1061
SET gbase_fast_update =0;表示关闭快速UPDATE 模式。
SET gbase_fast_update =1;表示开启快速UPDATE 模式。
示例
示例1:开启快速UPDATE 模式。
gbase> CREATE TABLE t1 (f_1 int);
Query OK, 0 rows affected
gbase> INSERT INTO t1 values(1),(2),(3);
Query OK, 3 rows affected
Records: 3
Duplicates: 0
Warnings: 0
gbase> SELECT * FROM t1;
+------+
| f_1
|
+------+
|
1 |
|
2 |
|
3 |
+------+
3 rows in set
gbase> SET gbase_fast_update = 1;
Query OK, 0 rows affected
gbase> UPDATE t1 SET f_1 = 10 WHERE f_1= 1;
Query OK, 1 row affected
Rows matched: 1
Changed: 1
Warnings: 0
gbase> SELECT * FROM t1;
+------+
| f_1
|
+------+
|
2 |
|
3 |
|
10 |
+------+
3 rows in set
gbase> SET gbase_fast_update = 0;
Query OK, 0 rows affected

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1062

功能:
用户级磁盘配额通过设置用户的磁盘使用上限,限制所设置用户创建表的
sys_tablespace 和metadata 空间总和。
语法格式:
Grant usage on *.* to limit_storage_size=integer[K,M,G,T]
查看用户磁盘限额和磁盘使用现状:
select * from information_schema.gnodes_user_diskspace_usage;
控制刷新系统表磁盘使用现状:

_gbase_storage_flush_interval
数据库服务启动和关闭时会自动刷新磁盘使用现状记录入相应的系统表,
之后由该
参数控制间隔多少秒刷新系统表的磁盘统计信息。该参数的最小值为1,最大值为
86400(24 小时)。该参数可以用下面sql 自定义设置,例如:
gbase> set global
_gbase_storage_flush_interval=100;

Refresh user storage usage;
手动刷新系统表中磁盘使用现状的sql。
示例

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
447
gbase> create user u;
gbase> grant all on *.* to u;
gbase> grant usage on *.* to u limit_storage_size=1M;
gbase> select * from information_schema.gnodes_user_diskspace_usage;
+-----------+------------------+-------------------------+-------------------+
| NODE_NAME | User
| user_limit_storage_size |
user_storage_size |
+-----------+------------------+-------------------------+-------------------+
| node1
| root
|
|
96773982 |
| node1
| gbase
|
|
0 |
| node1
| u
| 1M
|
0 |
| node2
| root
|
|
96461010 |
| node2
| gbase
|
|
0 |
| node2
| u
| 1M
|
0 |
| node3
| root
|
|
96548104 |
| node3
| gbase
|
|
0 |
| node3
| u
| 1M
|
0 |
| node4
| root
|
|
96860988 |
| node4
| gbase
|
|
0 |
| node4
| u
| 1M
|
0 |
+-----------+------------------+-------------------------+-------------------+
12 rows in set (Elapsed: 00:00:00.01)
[gbase@rhel73-1 ~]$ gccli –uu
gbase> use ssbm_u;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> create table part (
p_partkey
bigint,
p_name
varchar(22),
p_mfgr
varchar(6)
comment 'lookup',
p_category
varchar(7)
comment 'lookup',
p_brand1
varchar(9)
comment 'lookup',
p_color
varchar(11) comment 'lookup',

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
448
p_type
varchar(25) comment 'lookup',
p_size
int,
p_container
varchar(15) comment 'lookup'
);
Query OK, 0 rows affected (Elapsed: 00:00:01.60)
gbase> load data infile
'file://192.168.146.20/opt/ssbm/part.tbl' into table
part data_format 3
FIELDS TERMINATED BY '|';
Query OK, 200000 rows affected (Elapsed: 00:00:05.69)
Task 262151 finished, Loaded 200000 records, Skipped 0 records
gbase> load data infile
'file://192.168.146.20/opt/ssbm/part.tbl' into table
part data_format 3
FIELDS TERMINATED BY '|';
ERROR 1733 (HY000): (GBA-01EX-700) Gbase general error: Task 262152
failed, [192.168.146.20:5050](GBA-02AD-0005)Failed to query in gnode:
DETAIL: (GBA-01EX-700) Gbase general error: (gns_host: ::ffff:192.168.146.21)
The disk space of User 'u' has exceeded the limit value.(Usage: 4437691, Limit:
1048576)
SQL: LOAD /*+ TID('262223') */ DATA INFILE '/opt/ssbm/part.tbl' INTO
TABLE `ssbm_u`.`part_n1` DATA_FORMAT 3 FILE_FORMAT UNDEFINED
FIELDS TERMINATED BY '|' HOST '::ffff:192.168.146.20'
CURRENT_TIMESTAMP 1601029204 SCN_NUMBER 2
gbase> select * from information_schema.gnodes_user_diskspace_usage;
+-----------+------------------+-------------------------+-------------------+
| NODE_NAME | User
| user_limit_storage_size |
user_storage_size |
+-----------+------------------+-------------------------+-------------------+
| node1
| root
|
|
96773982 |
| node1
| gbase
|
|
0 |
| node1
| u
| 1M
|
4435201 |
| node2
| root
|
|
96461010 |
| node2
| gbase
|
|
0 |
| node2
| u
| 1M
|
4437691 |
| node3
| root
|
|
96548104 |
| node3
| gbase
|
|
0 |
| node3
| u
| 1M
|

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
449
4438453 |
| node4
| root
|
|
96860988 |
| node4
| gbase
|
|
0 |
| node4
| u
| 1M
|
4435963 |
+-----------+------------------+-------------------------+-------------------+
12 rows in set (Elapsed: 00:00:00.17)
说明:

用户级磁盘限额是用户级的,该用户所创建的多个表共享该磁盘空间。

用户级磁盘限额只统计用户创建的express 引擎表的sys_tablespace 和metadata
所占空间,不统计gbase、gclusterdb、gctempdb 库各表的磁盘占用,不统计其
他引擎的库表。

磁盘限额在sql 执行开始时进行检查是否超额,执行过程中磁盘使用超额不检
查不报错。

检查磁盘限额的sql 是会增加所统计磁盘大小的sql,对于简单的select、delet
e、drop、shrink 等不会增加磁盘大小的sql 不做超额检查。

DDL 不检查磁盘限额。
注意
用户磁盘限额和资源池磁盘管理是从两个维度对用户创建的express 引擎表
sys_tablespace 和metadata 占用的磁盘空间进行限制,它们相互独立,同时开启
时,超过两者最低限额将会报错。