【问题标题】:implementing batch process on a select statement在 select 语句上实现批处理
【发布时间】:2015-01-01 08:27:15
【问题描述】:

我正在执行两个选择查询。第一次选择查询的结果用于获取第二次选择查询的结果。 例子 查询 1 = "从表 1 中选择名称、帐号" query 2 = "Select budget_column1, budget_column2 from table2 where column3 = accountNumber which we got from select query1;

我正在尝试优化我的代码。显示结果需要很长时间。 如何在这种场景下实现prepared Statement addbatch。我一直在搜索,但大多数示例显示 insert、update、delete 语句不在 select 语句上

【问题讨论】:

标签: java sql jakarta-ee jdbc


【解决方案1】:

尝试将查询组合成一个查询(连接),并在需要时让 RDBMS 进行优化:

select t1.name, t2.budget_column1, t2.budget_column2
from table1 as t1, table2 as t2
where t1.accountNumber = t2.column3;

【讨论】:

  • 其实代码里还有其他的事情。我不能使用连接
  • 有没有其他方法可以通过使用结果集的 addbatch 或使用准备好的语句来完成此操作
  • 或许在table2的column3上放一个索引,让accountNumber匹配得更快。
  • 哦,使用 addbatch。从来没有用过。至于prepared statement,应该不会影响服务端的执行效率。
【解决方案2】:

批量执行只针对修改语句(插入、更新、删除),不针对选择。

通常,您最好的选择是允许数据库为您执行连接并执行尽可能少的语句。如果您确实需要执行 2 个不同的查询,则需要确保您具有索引访问以提供良好的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多