sql语句:
select c.productcode,
a.subscriberid,
b.productname,
c.detailbillid,
c.AdjustID,
c.Adjustamount,
c.AdjustReason,
'1'
from v_productbilldetail a,
t_productinfos b,
T_Adjustcharge c,
t_subscriberinfos si
where c.detailbillid = a.detailbillid
and c.productcode = b.productcode
and si.subscriberid = a.subscriberid
and si.customerid = '1010325645'
and c.createdate >= to_date('2011-01-01', 'yyyy-mm-dd')
and c.createdate <= to_date('2011-03-31', 'yyyy-mm-dd')它的执行计划如下:很显然,视图没有用到索引但是如果只有如下两个表连接的话,视图却用到了索引。
select si.*
from v_productbilldetail a, t_subscriberinfos si
where si.customerid = '1010325645'
and a.subscriberid = si.subscriberid
执行计划如下:问题:
我该如何让第一条sql里的视图也用到索引呢?
select c.productcode,
a.subscriberid,
b.productname,
c.detailbillid,
c.AdjustID,
c.Adjustamount,
c.AdjustReason,
'1'
from v_productbilldetail a,
t_productinfos b,
T_Adjustcharge c,
t_subscriberinfos si
where c.detailbillid = a.detailbillid
and c.productcode = b.productcode
and si.subscriberid = a.subscriberid
and si.customerid = '1010325645'
and c.createdate >= to_date('2011-01-01', 'yyyy-mm-dd')
and c.createdate <= to_date('2011-03-31', 'yyyy-mm-dd')它的执行计划如下:很显然,视图没有用到索引但是如果只有如下两个表连接的话,视图却用到了索引。
select si.*
from v_productbilldetail a, t_subscriberinfos si
where si.customerid = '1010325645'
and a.subscriberid = si.subscriberid
执行计划如下:问题:
我该如何让第一条sql里的视图也用到索引呢?
这个是视图
但我就是想用视图来解决问题
不知道可行不可行?之所以要用视图
是因为代码简洁些
如果改成表
代码难看了同时还想搞清楚到底怎么用视图上的索引