有这样的sql
  select * from 
(select * FROM  
(select * from 
(select * from 
(select * from tb)a)a)a) a像这样的语句把里面的语句转成临时表快些还是有什么别的优化办法?

解决方案 »

  1.   

    这种要改写查询了。索引效率已经大大降低。临时表可能是比较好的方法,或者试试exists那些写法
      

  2.   

    从你贴的SQL 看好像就是从同一表中选取数据嘛,没必要这么嵌套。
    要是递归的话,需要公用表表达式的写法, with t as ( select x,xx,xxx from a where 1=1  union select x,xx,xxx from t inner join  a on x=xx)
      

  3.   

    首先我需要链接过去查询,2000W的数据查了2个小时还没出来,而且是oracle建临时表还比较麻烦,不像sqlserver,如果建临时表导本地操作
    不知道可行不,有没有具体的方案?求各位大神支招
      

  4.   

    应该放在一个server上查询。不然时间都耗在网络传输上了