環境の 1 つでアプリケーションが突然遅くなりました。私が行った唯一の変更は、SQL の変更です。リリース前のSQLはこんな感じでした
Select EmployeeId
From Employee
Where Dept='CS'
and record_state='ACTIVE'
and EmployeeTypeId ='1'
リリース後SQLは
Select EmployeeId
From Employee Where Dept='CS'
and record_state='ACTIVE'
and EmployeeTypeId IN ('1','2')
このテーブルのインデックスは employee_state_id_index (Dept,record_state,EmployeeTypeId ) です。インデックスは変更されていません。このインデックスは新しい SQL に役立ちませんか? 新しい SQL はテーブル全体をスキャンしますか? インデックスが in 句でどのように機能するかわかりません。あなたの助けとコメントに感謝します
クエリの説明計画は次のとおりです。
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
| 0 | DELETE STATEMENT | | 1 | 57 | 4 (0)|
| 1 | DELETE | Employee | | | |
|* 2 | INDEX RANGE SCAN| employee_state_id_index | 1 | 57 | 4 (0)|
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
2 - access("C"."Dept"='CS' AND
"C"."RECORD_STATE"='ACTIVE')
filter("C"."EmployeeTypeId"='1' OR
"C"."EmployeeTypeId"='2')