怎么让in用上索引呢?
SELECT sum(-fd5) AS T, fd1,fd3 ,fd4FROM temp
WHERE fd2 IN ('104','105','120','140','141','142','143','159','161','163','165', '167', '169','181','855','856','857','858','862','866','867','883','892','893','895','719','721','171','896')
GROUP BY fd1,fd3,fd4 能否用上索引,看你怎么建立索引了。
ase引擎生成抽象计划的时候会将in转化成or,对于or的每个值会进行相应的扫描。
针对你给出的sql,in列表中的很多可选值很可能会让ase引擎选择表扫描。
建议:建立f2,fd1,fd3,fd4,fd5上的组合索引,检查是否能用上。
还有,使用此组合索引与表扫描的代价也需要考虑。 强制index scan试试? 回复 3# Eisen
怎么强制 了? select .... from tb1 (index ind_on_tb1) 回复 5# Eisen
谢谢
页:
[1]