网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  视图上含有row_number分析函数没法走索引     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:118次  录入:管理员--2008-03-10  
 

问题:有如下的sql性能差:

select rowid,pkg_life_query_func.f_get_deposit_account_value(deposit_id,account_code) as account_value,pkg_life_query_func.f_get_deposit_account_value(deposit_id,account_code) as account_value,a.* from v_cust_deposit_list a where ( account_code='27902')

v_cust_deposit_list 是一个视图如下:

create or replace view v_cust_deposit_list as

select row_number() over(order by tcdl.account_code,

trunc(tcdl.deposit_date), to_number(decode(tcd.distri_type,

'1', 1, '2', 5, '3', decode(tpf.fee_type, 169, 2, 69, 6),

'10', 3, '71', 4, '8', 9, 8))) rn,tcdl.*

from t_cust_deposit_list tcdl,

t_capital_distribute tcd,

t_product_fee tpf

where tcdl.capital_id = tcd.capital_id(+)

and tcd.prem_id = tpf.list_id(+)

order by tcdl.account_code,

trunc(tcdl.deposit_date),

to_number(decode(tcd.distri_type,'1',1,'2',5,'3',

decode(tpf.fee_type, 169, 2, 69, 6),'10',3,'71',4,'8',9,8));

在t_cust_deposit_list有account_code;

原因:由于在视图上含有row_number分析函数,所以没法走索引:把语句改为:

select rowid,

pkg_life_query_func.f_get_deposit_account_value(deposit_id,account_code) as account_value,

pkg_life_query_func.f_get_deposit_account_value(deposit_id,account_code) as account_value,

a.*

from (

select row_number() over (order by tcdl.account_code,trunc(tcdl.deposit_date),to_number(decode(tcd.distri_type,'1',1,'3',decode(tpf.fee_type,169,2,69,5),'10',3,'71',4,'2',9,8))) rn,tcdl.*

from

(select tcd2.* from t_cust_deposit_list tcd2

where tcd2.account_code='27902') tcdl,t_capital_distribute tcd,t_product_fee tpf

where tcdl.capital_id = tcd.capital_id(+) and tcd.prem_id = tpf.list_id(+)

order by tcdl.account_code,trunc(tcdl.deposit_date),to_number(decode(tcd.distri_type,'1',1,'3',decode(tpf.fee_type,169,2,69,5),'10',3,'71',4,'2',9,8))

) a

 
 
上一篇: linux自动备份mysql数据库的实用方法    下一篇: 如何调整"oracle"数据库服务器的性能
  相关文档
灵活应用oracle数据查询时经常用到的关联 03-03
在Oracle 10gR2中设定指定的恢复点实现轻松闪回 08-05
教你轻松掌握Oracle数据库中的物理结构 09-29
SQL Server和Oracle并行处理比较分析 04-11
循序渐进讲解oracle数据库的完整性概念 05-05
Oracle中怎样用自治事务保存日志表 04-11
经验总结:sql server与oracle的数据同步 06-12
深入讲解如何使用rollup配合group by命令 04-09
理解和使用Oracle 8i分析工具-LogMiner 01-15
循序渐进讲解oracle数据库管理员的职责 (1) 04-29
讲解forall与bulk collect的使用方法 05-12
oracle数据库中使用dbms_profiler进行调优 05-07
菜鸟学Oracle - 用PL/SQL画直方图 05-27
详细讲解有关"cbo"优化的三个疑难问题 02-03
oracle的window服务启动时并不启动实例 03-04
个人经验总结:oracle数据库scn号详解 08-12
巧用数据库归档技术解决性能下降问题 04-14
细化解析Oracle中限制返回结果集的大小 09-01
轻松掌握什么是数据的物理(存储)结构 09-29
oracle数据库decode函数的作用及使用方法 05-12
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息