Oracleクエリを最適化しようとしています。現在、テーブルには最大100万レコードがあるため、実行速度はかなり遅くなります。テーブルとテーブルの2つのテーブルがitem_locationありtariffsます。レコードには、とのitem_locationデュアルキーがitem_noありitem_locます。tariffsレコードは、フィールドと。を含むランダムな3桁の識別子であるキーとともに保存されtariff_codeます。は、アイテムのレコードの外部キーです。import_tariffexport_tariffitem_tariff_codetariffs
簡単にするために、SQLFiddleを次に示します。
2つの値を含むに一致する'sをitem_no持つ場所を見つけようとしています。export_tariff
たとえば、export_tariff「1111111111」と「2222222222」の両方に等しいアイテムを検索する場合、これらのレコードはデータベースにあるため、「12345」が返されます。
item_no | item_loc | export_tariff
----------------------------------------
12345 | B1 | 1111111111
12345 | B2 | 2222222222
しかし、このレコードのために「67890」は見つからないはずです。
item_no | item_loc | export_tariff
----------------------------------------
67890 | B1 | 1111111111
export_tariff「2222222222」がないので。
これまで使用してきたクエリをSQLFiddleに追加しました。