返回首页

gbase数据、南大通用产品文档:GBase8c执行批处理

更新日期:2024年09月11日

用一条预处理语句处理多条相似的数据,
数据库只创建一次执行计划,
节省了语句的编
译和优化时间。可以按如下步骤执行:
步骤1 调用Connection 的prepareStatement 方法创建预编译语句对象。
Connection conn = DriverManager.getConnection("url","user","password"); PreparedStatement
pstmt = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?)");
步骤2 针对每条数据都要调用setShort 设置参数,以及调用addBatch 确认该条设置完毕。
pstmt.setShort(1, (short)2);
pstmt.addBatch();
步骤3 调用PreparedStatement 的executeBatch 方法执行批处理。
int[] rowcount = pstmt.executeBatch();
步骤4 调用PreparedStatement 的close 方法关闭预编译语句对象。
pstmt.close();
在实际的批处理过程中,通常不终止批处理程序的执行,否则会降低数据库的性能。因
此在批处理程序时,
应该关闭自动提交功能,
每几行提交一次。
关闭自动提交功能的语句为:
conn.setAutoCommit(false);

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
81
----结束

4 |
| demo.tt
| demo
| tt
|
| 2020-07-29 18:31:39.3360
00 | 2020-07-29 18:31:41.430000 | COMPLETED |
100 |
5
| 172.168.83.11 |
4 |
+------------+---------+------------+----------+----------------------------+-------------------
---------+-----------+------------+----------+---------------+-----------------+
3 rows in set (Elapsed: 00:00:00.03)
gbase> quit
Bye

参数说明:控制当fsync 到磁盘失败后是否继续运行数据库。由于在某些操作系统的场
景下,fsync 失败后重试阶段即使再次fsync 失败也不会报错,从而导致数据丢失。
该参数属于POSTMASTER 类型参数,
请参考表GUC 参数设置方式中对应设置方法进
行设置。
取值范围:布尔型

on 表示当fsync 同步到磁盘失败后采取重试机制,数据库继续运行。

off 表示当fsync 同步到磁盘失败后直接报panic,停止数据库。
默认值:off