要檢查多個表(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