下面是我要用的一个查询
Select /*+ leading(a) */ b.Serv_Param_Value Serv_Param_Value, To_Char(a.Start_Date, 'yyyymmddhh24miss') Start_Date, 
To_Char(a.End_Date, 'yyyymmddhh24miss') End_Date ,a.serv_id
 From tf_f_user_serv a , Tf_f_User_Servparam b 
where a.Serv_Ins_Id = b.Serv_Ins_Id 
And a.Serv_Id in (331800)
本身语句非常简单。
就是从两个表里查id相等的数据,只要a表里的数据同时满足另一个tag为331800就可以了
但是,问题是。这个数据库我不方便做索引。
a,b两表的数据量都是千万级别的。
我已经搜索了7分钟不会产生任何数据。
求达人指点。

解决方案 »

  1.   

    select * from (Select /*+ leading(a) */ b.Serv_Param_Value Serv_Param_Value, To_Char(a.Start_Date, 'yyyymmddhh24miss') Start_Date, 
    To_Char(a.End_Date, 'yyyymmddhh24miss') End_Date ,a.serv_id
     From tf_f_user_serv a , Tf_f_User_Servparam b 
    where a.Serv_Ins_Id = b.Serv_Ins_Id) c where and c.Serv_Id in (331800)
      

  2.   

    只要a表里的数据同时满足另一个tag为331800就可以了
      只有一个 331800 你直接用= 不行了,怎么还用IN 呢