私は Oracle 11g を使用しており、次の 3 つのコア テーブルがあります。
Customer - CUSTOMERID|DOB
CustomerName - CUSTOMERNAMEID|CustomerID|FNAME|LNAME
Address - ADDRESSID|CUSTOMERID|STREET|CITY|STATE|POSTALCODE
各テーブルに約 6,000 万行あり、データは米国とカナダの人口が混在しています。
Web サービスを呼び出すフロントエンド アプリケーションがあり、姓と部分的な郵便番号の検索を行います。したがって、私のクエリは基本的に
where CUSTOMERNAME.LNAME = ? and ADDRESS.POSTALCODE LIKE '?%'
通常、zip の最初の 3 桁が提供されます。
住所テーブルには、すべての通り/都市/州/郵便番号に関するインデックスと、州および郵便番号に関する別のインデックスがあります。
私はzip専用のインデックスを追加しようとしましたが、オラクルはクエリでそのインデックスを使用するように強制されましたが、違いはありませんでした。
約100行を返すには(一度に100行しか返さないページネーションがあります)、理想的ではない約30秒かかります。これを改善するにはどうすればよいですか?