with aaa as (select * from tableone where 时间 = to_date(‘2011-4-20’,'yyyy-mm-dd')
由于的 tableone 数据量很大
在下面我要对 aaa 操作 能不能基于aaa建立索引呢。。
还有 如果要建索引的话 是不是 只能才用临时表的方法了。
知道的人 谢谢 给个答复。
由于的 tableone 数据量很大
在下面我要对 aaa 操作 能不能基于aaa建立索引呢。。
还有 如果要建索引的话 是不是 只能才用临时表的方法了。
知道的人 谢谢 给个答复。
没听说过with as可以建索引,索引时针对数据库中实际的对象创建的,并分配存储空间
你想嘛,如果你要对with ..as 用索引,请问你怎么建此索引??还有,至于你说的提高你的查询效率,如果真要想用with ..as 来产生一个临时表,对此临时表做查询
要提高效率的地方是在as(....)这一块
也就是说在生成临时表的时候提高
比如你可以这样:
WITH tab AS (
select /*+ materialize */ .. from .... --在你这里面用你的实际表的索引
)
with t as(
select ...... from ......
)
在with as上建立索引,属于无聊之举;
索引一般建立在实际表上,为了某些特别的需求,
比如:在很大量数据的表中检索指定数据时,你可以在检索条件上建立索引,
假设有下面这个查询:
select empno,ename,job,sal
from emp
where empno in (11,152,100);
那么我们就可以在empno列上见利索引,这样能有效的加快查询速度。