如何在没有连接的情况下查询多个相关表,并使用 JDBC 获取一致的数据?



我正在创建一个进程,该进程通过JDBC连接到给定的SQL Server数据库,扫描每个表,并读取自上次运行此过程以来插入或更新的任何新数据。由于性能问题,数据库的所有者将不允许此过程对任何表执行联接。

有问题的场景

  • A 是表 B 的父级
  • 此过程从表 A 读取数据
  • 在读取表 B 的过程之前,插入新的父记录 插入表 A 并将新的子记录插入表 B 中
  • 读取表 B 时,将存在未读取的子记录 在结果集中具有相应的父记录,来自 表A的先前读数

如何在没有连接的情况下查询多个相关表,并使用 JDBC 获取一致的数据?

如果您不能执行 JOIN,则可能只需要跟踪每个父表的每个检索到的主键,然后使用这些主键来查询子行。这将使查询复杂化,并给数据库增加更多压力,因为您执行的查询与在单个 JOINed 查询中执行查询相比,但它应该给出相同的结果。

最新更新