select t1.m,t1.n
from t1,t2
where t1.a=t2.a(两表在a上均有索引)
and (t2.c=p_code or p_code is null)(c字段上上有索引)
。t1表大概有几百万条数据,t2表几十万条数据,这个sql是过程中其中一个最慢的,p_code是个参数,如果不为空则按t2.c=p_code 查询,请大家看看哈,我应该向什么方向优化,先看哪些方面?
t2表虽然走了在a字段上的索引,但因表的行排序跟这个索引不同,所以i/o等待时间比较长
from t1,t2
where t1.a=t2.a(两表在a上均有索引)
and (t2.c=p_code or p_code is null)(c字段上上有索引)
。t1表大概有几百万条数据,t2表几十万条数据,这个sql是过程中其中一个最慢的,p_code是个参数,如果不为空则按t2.c=p_code 查询,请大家看看哈,我应该向什么方向优化,先看哪些方面?
t2表虽然走了在a字段上的索引,但因表的行排序跟这个索引不同,所以i/o等待时间比较长
能给个sql优化的大体方向吗?
另外,统计信息对于执行计划很重要,把这两个表的统计信息再重新收集一次,然后再看看执行计划