南大通用GBase 8a JDBC采用Prepare 方式批量提交的行数限制和gbase_buffer_insert参数

GBase 8a 支持JAVA JDBC里面的预编译方式PrepareStatment 的BatchInsert, 其中的批量大小取决于是否开启了GBase JDBC驱动特殊的rewriteBatchedS tatements参数。如开启则限制是SQL的长度,如未开启则限制为gbase_buffer_insert参数的大小。

开参数情况

有关批量提交BatchInsert 的rewriteBatchedS tatements细节,请参考

其实质是将多条insert values拼接成一个insert values (),(),()的格式,一次性下发一个SQL,来提高性能。

未打开参数

则数据库,会将数据缓冲到连接节点的gcluster服务内,其配置参数为

gbase_buffer_insert

其默认值一般是256M,且如果有多个并发insert, 则共享这个内存。当提交时,再将数据真正insert到数据节点内。

总结

批量insert 可以提高入库性能,但GBase 优选的入库方式是LOAD, 其次是打开rewriteBatchedS tatements参数。

有关LOAD的介绍,请参考

南大通用GBase 8a JDBC采用Prepare 方式批量提交的行数限制和gbase_buffer_insert参数》有1条评论

评论已关闭。