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