SELECT MAX (tran_date)
FROM abc
WHERE p_id = p_p_id
AND flag = 'Y'
AND ( ( p_c_number IS NULL
AND c_number IS NULL
)
OR (c_number = p_c_number)
)
AND ( ( p_m_number IS NULL
AND m_number IS NULL
)
OR (m_number = p_m_number)
)
AND ( ( p_s_number IS NULL
AND s_number IS NULL
)
OR (s_number = p_s_number)
);
我使用Oracle作为RDBMS,我想优化这个查询优化此查询?
- 计划 SELECT语句ALL_ROWSCost:357字节:39基数:1级
2排序骨料字节:39基数:1
1个TABLE ACCESS FULL TABLE ABC成本:357字节:312基数:8
您是否尝试过使用RDBMS的'EXPLAIN'或类似命令来查看查询的预计执行计划?围绕大多数这些列创建索引可能会有所帮助,查询计划将帮助您查看哪些列。 – cdhowie
@cdhowie:在oracle中执行计划的检索比仅仅在mysql中预先使用'EXPLAIN'要困难得多;-)但是的确,每个优化都需要在计划检查时开始 – zerkms
我会给你发送解释计划 – gaurav