-1

複数のテーブル (10 ~ 15 個のテーブル) で ID の存在を確認するには、どのオプションが最適ですか? パフォーマンスの点で。

  1. 結合の使用
  2. テーブルごとに個別のクエリを使用する (Spring の DAO から呼び出される)。
  3. 使用が存在します。

複数のテーブルからの Id の存在に基づいて決定を下す必要があります。

4

2 に答える 2

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 に答える
0

Oracle でのクエリ間のパフォーマンスを説明計画 (たとえば、Oracle sql 開発者を使用) で測定し、単純な Java クラスを記述して、DAO と比較して所要時間を確認できます。

exists を使用すると、Oracle は pk および fk インデックスを使用し、データベース内の 1 つのクエリですべてを実行します。これが最良の選択肢だと思いますが、それらをすべて比較すると、正確な選択肢が得られます。

于 2011-11-23T16:34:06.917 に答える