我正在尝试优化 Oracle 查询。现在它运行得很慢,因为该表有大约 1M 的记录。我有两张桌子,item_location
桌子和tariffs
桌子。一条item_location
记录有一个双键,item_no
and item_loc
。tariffs
记录使用密钥存储,该密钥是tariff_code
随机的三位标识符,具有字段import_tariff
和export_tariff
. item_tariff_code
是项目记录的外键tariffs
。
为简单起见,这是一个SQLFiddle。
我试图找到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添加了到目前为止我一直在使用的查询。