2
我們的應用程序在其中一個env中突然變慢。我所做的唯一更改是更改SQL。發佈之前,SQL是像此版本的SQLSQL索引與條款
Select EmployeeId
From Employee
Where Dept='CS'
and record_state='ACTIVE'
and EmployeeTypeId ='1'
後
Select EmployeeId
From Employee Where Dept='CS'
and record_state='ACTIVE'
and EmployeeTypeId IN ('1','2')
在此表上的索引是employee_state_id_index(系,record_state,EmployeeTypeId) 該指數沒有發生變化。這個索引不能幫助新的SQL嗎?新的SQL掃描整個表嗎?我不知道索引如何在子句中工作。感謝您的幫助和評論
解釋計劃的查詢
| 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')
檢查執行計劃。它會告訴你究竟是否使用了索引。你也應該告訴我們你正在使用哪個DBMS。甲骨文? Postgres的? – 2013-02-19 10:22:51
你檢查瞭解釋計劃嗎?你可以在這裏爲我們發佈? – Incognito 2013-02-19 10:25:24
我正在使用Oracle 10g – javanerd 2013-02-19 10:29:18