返回首页

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

更新日期:2024年09月11日

WHILE_LOOP 语句
语法图
只要条件表达式为真,WHILE 语句就会不停的在一系列语句上进行循环,在每次进入
循环体的时候进行条件判断。
示例
CREATE TABLE integertable(c1 integer) ;
CREATE OR REPLACE PROCEDURE proc_while_loop(maxval in integer)
AS
DECLARE
i int :=1;
BEGIN
WHILE i < maxval LOOP
INSERT INTO integertable VALUES(i);
i:=i+1;
END LOOP;
END;

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
650
/
--调用函数
CALL proc_while_loop(10);
--删除存储过程和表
DROP PROCEDURE proc_while_loop;
DROP TABLE integertable;

基于Tomcat 使用GBase JDBC
以下说明适合Tomcat 5.5,对于新版本GBase JDBC 8.3.81.51 需要使用
JDK1.6。需要将GBase JDBC 驱动包gbase*.jar 放入目录
$TOMCAT_HOME\common\lib 下来配置用户的服务器。
在定义Web 应用程序的场景
内,
通过在$TOMCAT_HOME\conf\Catalina\localhost 目录下增加声明资源文件,
该文件以Web 应用名称为名(例:GBaseapp.xml)
,配置JNDI
DataSource,内容
部分如下:


name="jdbc/GBaseDB"
type="javax.sql.DataSource"
password="somepassword"
driverClassName="com.gbase.jdbc.Driver"

GBase 8a 程序员手册JDBC 篇


- 54 -

南大通用数据技术股份有限公司
maxIdle="2"
maxWait="50"
username="user"
url="jdbc:gbase://localhost:5258/dbname"
maxActive="4"/>

需要在Web 应用的WEB-INF 目录内的web.xml 文件中添加如下内容:

DB Connection
jdbc/GBaseDB
javax.sql.DataSource
Container

在程序中访问数据源的代码为:
Context initCtx = new InitialContext();
DataSource ds =
(DataSource)initCtx.lookup("java:comp/env/jdbc/GBaseDB");
一般地,用户应该遵照Tomcat 自带的安装说明,因为用户在Tomcat 中配
置数据源的方法有时候是不同的,并且,如果在用户的XML 文件里使用了错误
的语法,那么很可能以一个如下的异常结束:
Error: java.sql.SQLException: Cannot load JDBC driver class 'null
' SQL
state: null
注:关于Tomcat 使用Gbase JDBC 实例请查看2.8.12 小节。

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 55 -

_gbase_sis_ctq_threads
用于insert select,load 接收端数据处理的线程数,缺省值未0,使用CPU 核数,
当该线程数不够用时,会创建临时线程协助处理,可以使用show engine express
status 查看各个节点间的连接和session 情况,以及发送和接收任务的情况。

GBase 8a MPP Cluster 最佳实践
4 参数调优
文档版本(2022-02-11)
南大通用数据技术股份有限公司
30
_gbase_sis_ctq_threads 参数用于指定CTQ 的个数(CommanTaskQueue 的简
写,待执行的命令队列),一个CTQ 对应一个任务执行器(Executor),即该参
数可理解为Executor 个数。参数默认取值为CPU 核数的2 倍。建议配置为512。
在大规模集群并发场景下,CTQ 数不足会造成没有充足的任务执行器进行SQL 提
交等操作,需要反复进行CTQ 数的判断和生成临时的执行器,两次判断之间间隔
60 秒,从而出现性能问题。
_gbase_rep_receive_buffer_size
用于insert 和load 在节点间传输数据使用,表示某个节点与其它所有节点的连接
中,最大等待处理的数据大小,单位为M。
_gbase_gns_queue_size
表示每个发送端session 的消息队列长度,满了之后会等待并重试。默认取值为
4096,在出现GNS 数据发送性能异常时,可调大该参数。