java - SQL Anywhere 批处理操作
问题描述
我正在使用 SQL Anywhere JDBC 驱动程序执行批量插入/更新,以避免多次数据库往返以提高性能。
下面是插入的示例测试代码
private void insertIntoOrderTable(List<Order> orderList, PreparedStatement stmt,
long orderId) throws SQLException {
for (Order order : orderList) {
OrderInfoData orderData = (OrderInfoData) order.getData();
stmt.setLong(1, orderId);
stmt.setLong(2, orderData.getCustId());
stmt.setString(3, orderData.getCouponCode());
stmt.setLong(4, orderData.getProductId());
stmt.addBatch();
}
stmt.executeBatch();
}
该操作主要是在表上更新或插入,在 DB 端,列类型是bigint、varchar(50)、bit、varchar(255)、long varchar、integer、double、tinyint、bigint 之一。
所以有以下查询,
- addBatch() 方法在数字方面是否有任何限制。假设我可以有 1000 多个插入订单,并且可能更大,所以在什么时候是硬停止,我可能会看到问题。
- 根据 sybase 文档链接http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sqlanywhere.12.0.1/dbprogramming/prepared-wide-insert-using-jdbc.html “建议您使用较小的列大小。不建议使用批量插入将大二进制或字符数据插入长二进制或长 varchar 列,这可能会降低性能。 ”因此,根据上述声明,这是一个很好的方法我遵循这种方法。
谢谢
解决方案
推荐阅读
- postgresql - 如何使用 select 语句声明一个函数以将所有 auto_increment 值重置为 postgresql 中表的最大 id
- wildfly - Wildfly 仅 HTTP 重定向
- c++ - 协议缓冲区损坏数据
- c# - 更改书写字体样式而不更改先前编写的文本
- android - 如果 url 包含嵌入 html 数据,如何在 Webview 中显示 pdf?
- javascript - 我在使用 node.js 更新 mongodb 中的数据时遇到了滞后
- javascript - 动画条更小
- python - Selenium 无法通过 xpath 找到元素
- java - 加入两个不同的 ExecutorService
- javascript - 如何使用来自 React Router 的路由参数发出 axios 请求,然后根据响应更新状态?