-1

要检查多个表(10 - 15 个表)中是否存在 Id,最好的选择是什么?在性能方面。

  1. 使用联接
  2. 对每个表使用单独的查询(从 Spring 的 DAO 调用)。
  3. 使用存在。

需要根据来自多个表的 Id 的存在来做出决定。

4

2 回答 2

0

您可以使用解释计划(例如使用 Oracle sql developer)测量 oracle 中查询之间的性能,并编写一些简单的 java 类来查看与 DAO 相比需要多长时间。

当您使用 exists Oracle 将使用您的 pk 和 fk 索引,您将在数据库中的一个查询中完成所有操作。我认为这是最好的选择,但是如果您将它们进行比较,您将获得准确的选择。

于 2011-11-23T16:34:06.917 回答
0

使用 UNION ALL:

SELECT 'table1' FROM table1 WHERE id = ?
UNION ALL
SELECT 'table2' FROM table2 WHERE id = ?
UNION ALL
SELECT 'table3' FROM table3 WHERE id = ?

另一个解决方案是使用函数:

select function(id)

此解决方案访问数据库服务器。

于 2011-12-04T01:18:05.730 回答