有两个select:
select * from t where a="a" and b="b" and c="c"select * from t where a="a" and b="b" and d="d" and e="e"请问这种情况下,如果建索引的话,
1、是对a,b,c,d,e建五个单独索引?
2、还是对a,b,c和a,b,c,d,e建立两个复合索引?
3、还是对a和b建立一个复合索引?在存在单独索引与复合索引的情况下,是否先按单独索引来查询?另外,还有一个问题:
可否提供一个例子:
定期(例如隔两周的周二晚上十点),rebuild索引,这样的一个存储过程?谢谢指点!
select * from t where a="a" and b="b" and c="c"select * from t where a="a" and b="b" and d="d" and e="e"请问这种情况下,如果建索引的话,
1、是对a,b,c,d,e建五个单独索引?
2、还是对a,b,c和a,b,c,d,e建立两个复合索引?
3、还是对a和b建立一个复合索引?在存在单独索引与复合索引的情况下,是否先按单独索引来查询?另外,还有一个问题:
可否提供一个例子:
定期(例如隔两周的周二晚上十点),rebuild索引,这样的一个存储过程?谢谢指点!
as
indName varchar2(100);
cursor cur is select index_name from user_indexes;
begin
open cur ;
loop
fetch cur into indName;
execute immediate 'alter index '||indName||' rebuild';
exit when cur%NOTFOUND;
end loop;end;
还是对a和b建立一个复合索引?
这样对两个select中where字段的交集建立复合索引?
另外,如果同时存在复合索引和单独索引,先使用哪个?谢谢!
采用这种方法最好。
第2个问题,估计你想定期整理索引吧。最好采用删除重建这种方法。