要检查多个表(10 - 15个表)中是否存在Id,最佳选择是什么?在表现方面。检查多个表中是否存在数据
- 使用连接
- 使用每个表单独的查询(称为从DAO春)。
- 使用存在。
需要根据多个表中是否存在Id来做出决定。
要检查多个表(10 - 15个表)中是否存在Id,最佳选择是什么?在表现方面。检查多个表中是否存在数据
需要根据多个表中是否存在Id来做出决定。
您可以使用解释计划(例如使用Oracle sql developer)测量oracle中查询之间的性能,并编写一些简单的java类来查看与DAO相比需要多长时间。
当您使用exists时,Oracle将使用您的pk和fk索引,并且您将在数据库中的一个查询中执行所有操作。我认为这是最好的选择,但如果你比较它们,你会有准确的选择。
使用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)
该解决方案使访问数据库服务器。
你想要什么结果?你想知道它所在的桌子,或者只是它在任何桌子上,或者它在所有桌子上? – Maess
更多架构数据请参考:S – osdamv
我只想检查一个值是否存在于很多表中。需要在表中存在来自java的参数传递的值。 – minil