- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
仅供引用 - 我不是开发人员,但在必须时编写代码:) 尝试编写一些 java 代码以批量方式更新数据库的多个记录。当我插入新行时,我正在查询另一个表以查找相关数据以添加相关日期。
代码似乎可以工作,但我的问题是性能。我发现整批 dml 语句每条语句的执行时间大约为 1 秒。我正在更新数千条记录,因此这项工作将需要相当长的时间才能执行。因此,我正在寻找有关如何在最大化性能的同时做到这一点的任何其他想法。
这就是我现在正在做的事情。
for(Referrer_UpdateSet i : referrerUpdateSet)
{
String dmlStatement = "INSERT INTO TempRefURL (firstTouchDate) " +
"(SELECT activityDateTime as firstTouch "+
"FROM referrer_URL_backup_10292014 "+
"WHERE mktPersonId = ? "+
"ORDER BY activityDateTime ASC LIMIT 1)";
stmt = mktoUTMConn.prepareStatement(dmlStatement);
stmt.setInt(1, i.id);
//System.out.println(stmt+" \n");
stmt.executeUpdate();
}
mktoUTMConn.commit();
我也在尝试preparedStatements.addBatch,但它似乎不起作用(只插入了1行..)
System.out.println("updating temp table with referrer URL data");
//iterate through array of parsed referrer URLs
String dmlStatement = "UPDATE dml_sandbox.TempRefURL SET Referrer_URL = ? " + "WHERE id = ?";
for(Referrer_UpdateSet i : referrerUpdateSet){
stmt = mktoUTMConn.prepareStatement(dmlStatement);
stmt.setInt(2, i.id);
stmt.setString(1, i.cleanURL);
//System.out.println(stmt+" \n");
stmt.addBatch();
//stmt.executeUpdate();
//System.out.println(stmt+" \n");
}
stmt.executeBatch();
System.out.println("Done updating temp table with referrer URL data");
mktoUTMConn.commit();
如有任何建议,我们将不胜感激。谢谢!
最佳答案
简单修复。请参阅我上面的评论。这是新代码:
String dmlStatement = "UPDATE dml_sandbox.TempRefURL SET Referrer_URL = ? " + "WHERE id = ?";
stmt = mktoUTMConn.prepareStatement(dmlStatement);
//iterate through array of parsed referrer URLs
for(Referrer_UpdateSet i : referrerUpdateSet){
stmt.setInt(2, i.id);
stmt.setString(1, i.cleanURL);
stmt.addBatch();
stmt.executeUpdate();
}
System.out.println(stmt+" \n");
int[] recordsAffected = stmt.executeBatch();
System.out.println("Done updating temp table with referrer URL data");
System.out.println(recordsAffected.length + " records affected");
mktoUTMConn.commit();
关于java - JDBC MySQL DML 语句插入与嵌套选择性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26662021/
首先,我使用的是 11gR2 SQL> select * from v$version; BANNER ------------------------------------------------
在我的例子中,我有一个包含 2,976,977 条记录的 Mysql 表。该表在两列上有索引,我在更新和插入来自多个客户端的记录时使用了这两列。问题是更新或插入值花费了太多时间。有什么办法可以加快速度
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我无法说服为什么我不能在 中添加 DML 操作Oracle 函数 特别是里面游标循环 .我觉得 Oracle 不支持游标循环内的 DML 操作。 如果我需要在游标循环内插入表格,我该怎么办?在其中创建
这个问题在这里已经有了答案: Solution to "cannot perform a DML operation inside a query"? (3 个答案) 关闭 9 年前。 我收到这个错
我正在使用数组 DML 操作来加速将大量记录插入 SQL 数据库。原理描述here 。如何使用此功能的示例代码: TFDQuery *FDQuery1; ... FDQuery1->SQL->Text
我对 Oracle 11g 上的 BULK COLLECT 逻辑有疑问。 存储过程中的原始逻辑是: PROCEDURE FOO(IN_FOO IN VARCHAR2) IS BEGIN FOR C
我正在从这样的批量插入操作中捕获错误: begin --bulk insert forall i in v_data.first .. v_data.last save excepti
这是我第一次发布问题,对于任何格式问题深表歉意。 我这里有一段代码: Code 但我不断收到错误:“在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列 'mysql
我已经在 MySQL 中创建了一个表 create table bittest (id int(11),constant bit(1) default b'0' ); 然后, insert into
对于给定的时间段(包括两个给定日期),例如 2002 年 12 月 1 日至 2003 年 7 月 31 日,找到在指定时间内至少拥有一张 EZ link 卡的人的集合。为了集合中的每个人,列出 (i
我的 MySQL 5.5 服务器已设置 autocommit=1。 我的存储过程有几个 DML,但没有明确的事务管理。 当我从 MySQL CLI 发出 call the_procedure() 时(
我有一个严重依赖 MySQL 回滚进行单元测试的 Spring/JDBC 应用程序。我发现,如果我在这些事务中执行某些 DDL 操作(即使是在临时表上),即使在正常的 DML 语句上,回滚也会失败。例
我正在尝试建立一个数据库,该数据库将根据 ID 号存储故事信息。现在我正在努力将上述信息放入表格中。我正在学习 python 和 sql,所以请耐心等待。 Pylint 告诉我在引用 title.in
我正在寻找一种使用 Pl/SQL 来检查由“立即执行”执行的语句是否为 dml 语句的方法。 最佳答案 可能有一个解决方案来检查查询字符串是否包含“INSERT”或“UPDATE”或... 但我认为这
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。 它们是什么以及它们与 SQL 有何关系? 最佳答案 以下内容改编自这里MySQL What is DDL, DML and DCL
我听说过有关数据库的术语 DDL 和 DML,但我不明白它们是什么。 它们是什么以及它们与 SQL 有何关系? 最佳答案 以下内容改编自此处MySQL What is DDL, DML and DCL
hive :-创建表,AlterTable等完成需要一些后端DML(MetaStore)。 哪个类的人会做这些? 哪个类将从MetaStore获取数据库凭证? 最佳答案 您可以查看org.apache
我需要导出特定对象及其对 DML 的引用,然后另一个应用程序将使用 DML 获取文件并将其导入。数据库模式当然是相同的。 是否有一些工具可以做到这一点,或者我必须使用带选项的 mysql 转储? 我感
仅供引用 - 我不是开发人员,但在必须时编写代码:) 尝试编写一些 java 代码以批量方式更新数据库的多个记录。当我插入新行时,我正在查询另一个表以查找相关数据以添加相关日期。 代码似乎可以工作,但
我是一名优秀的程序员,十分优秀!