检查多个表中是否存在数据

时间:2011-11-23 16:25:48

标签: sql performance oracle sqlperformance

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

  1. 使用联接
  2. 对每个表使用单独查询(从Spring的DAO调用)。
  3. 使用存在。
  4. 需要根据多个表中Id的存在来做出决策。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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)

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