返回首页

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

更新日期:2024年09月11日

功能说明
记录vc 级别权限信息。
表结构说明
表5- 308 表结构信息说明:




Host
主机IP
VC_ID
虚拟集群编码
User
用户名

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1518
Select_priv
select 语句的执行权限
Insert_priv
insert 的权限
Update_priv
update 的权限
Delete_priv
delete 语句的执行权限
Create_priv
create table 的权限
Drop_priv
drop 的权限
Drop_table_priv
drop table 的权限
Drop_view_priv
drop view 的权限
Drop_database_priv
drop database 的权限
Unmask_priv
unmask 的权限
Grant_priv
管理权限的权限
References_priv
未来功能的占位符,当前无用
Index_priv
create index 和drop index 的权限
Alter_priv
Alter 权限
Create_tmp_table_priv
创建temporary table 权限
Lock_tables_priv
允许在有select 权限的表上使用lock tables
Create_view_priv
创建视图的权限
Show_view_priv
使用show create view 的权限
Create_routine_priv
创建存储过程和函数的权限
Alter_routine_priv
是否允许alter 过程及函数
Execute_priv
执行存储过程和函数的权限
Event_priv
event 权限
Trigger_priv
触发器使用权限

连接性能问题

开启了log_hostname,但是配置了错误的DNS 导致的连接性能问题。
在连接上数据库,
通过show log_hostname 语句,
检查数据库中是否开启了log_hostname
参数。
如果开启了相关参数,那么数据库内核会通过DNS 反查客户端所在机器的主机名。这
时如果数据库主节点配置了不正确或不可达的DNS 服务器,那么会导致数据库建立连接过
程较慢。此参数的更多信息,详见《GBase 8c V5_3.0.0_开发者指南》中“GUC 参数说明>
错误报告和日志> 记录日志的内容”章节中关于“log_hostname”的描述。

数据库内核执行初始化语句较慢导致的性能问题。
此种情况定位较难,可以尝试使用Linux 的跟踪命令strace。
strace gsql -U user_name -W password -d dbname -h host -p port -r -c '\q'
此时便会在屏幕上打印出数据库的连接过程。例如,较长时间停留在下面的操作上:

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
42
sendto(3, "Q\0\0\0\25SELECT VERSION()\0", 22, MSG_NOSIGNAL, NULL, 0) = 22
poll([{fd=3, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
此时便可以确定是数据库执行SELECT VERSION()语句较慢。
在连接上数据库后,
便可以通过执行explain performance select version()语句来确定初始
化语句执行较慢的原因。
更多信息,
详见
《GBase 8c V5_3.0.0_开发者指南》

“性能调优>
SQL 调优指南> SQL 执行计划介绍”章节。
另外还有一种场景不太常见:
由于数据库主节点所在机器的磁盘满或故障,
此时所查询
等受影响,无法进行用户认证,导致连接过程挂起,表现为假死。解决此问题清理数据库主
节点的数据盘空间便可。

TCP 连接创建较慢问题。
此问题可以参考上面的初始化语句较慢排查的做法,通过strace 跟踪。
例如,如果长时间停留在:
connect(3, {sa_family=AF_INET, sin_port=htons(61052),
sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in
progress)
那么说明客户端与数据库端建立物理连接过慢,
此时应当检查网络是否存在不稳定、

络吞吐量太大的问题。

dttoasc() 函数将 datetime 变量的字段值转换为符合 ANSI SQL 标准的 ASCII
字符串。
语法
mint dttoasc(dtvalue, outbuf)
dtime_t *dtvalue;
char *outbuf;
dtvalue
指向要转换的初始化了的 datetime 变量的指针。
outbuf
指向为 dtvalue 中的值接收 ANSI 标准 DATETIME 字符串的缓冲区的指针。

用法
dttoasc() 函数将 datetime 变量中的字段的数字转换为它们等同的字符,并将它们复
制至 outbuf 字符串,在它们之间带有定界符(连字符、空格、冒号或句号)。您必须以您
想要该字符串拥有的限定符来初始化 dtvalue 中的 datetime 变量。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 691 -
该字符串不包括 SQL 语句用于定界 DATETIME 文字的限定符或圆括号。 outbuf
字符串符合 ANSI SQL 标准。
它包括针对每一定界符的一个字符,
加上字段,
其大小如下:
字段
字段大小
Year
4 位
DATETIME 的部分
如精度所指定
所有其他字段
2 位

带有 year to fraction(5) 限定符的 datetime 值产生最大的输出长度。等同的字符串
包含 19 位、6 定界符以及空终止符,总计 26 字节:
YYYY-MM-DD HH:MM:SS.FFFFF

如果您未初始化 datetime 变量的限定符,则 dttoasc() 函数返回不可预料的值,但此
值不超过 26 字节。

返回代码
0
转换成功。
<0
转换失败。

示例

demo 目录在文件 dttoasc.ec 中包含此样例程序。
/*
* dttoasc.ec *
The following program illustrates the conversion of a datetime value into an ASCII string
in ANSI SQL format
*/

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 692 -

#include

EXEC SQL include datetime;

main()
{
char out_str[16];

EXEC SQL BEGIN DECLARE SECTION;
datetime year to hour dt1;
EXEC SQL END DECLARE SECTION;

printf("DTTOASC Sample ESQL Program running.\n\n");

/* Initialize dt1 */
dtcurrent(&dt1);

/* Convert the internal format to ascii for displaying */
dttoasc(&dt1, out_str);

/* Print it out*/
printf("\tToday's datetime (year to hour)value is %s\n", out_str);

printf("\nDTTOASC Sample Program over.\n\n");
}
输出
DTTOASC Sample ESQL Program running.

Today's datetime (year to hour) value is 2007-09-19 08

DTTOASC Sample Program over.


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 693 -