查看: 2077|回复: 5

[讨论] 一条sql优化

[复制链接]
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2010-10-29 14:26 | 显示全部楼层 |阅读模式
SELECT VWAP_1M, TRADES_1M, VOLUME_NEW_1M
    FROM (select a.sec_long_id,
                 a.trad_dt,
                 a.rt_time_of_trade,
                 round(a.last_price * nvl(b.ratio_, 1), 2) LAST_PRICE,
                 round(a.VWAP_1M * nvl(b.ratio_, 1), 2) VWAP_1M,
                 a.VOLUME_NEW_1M,
                 a.BID_ORD_VOLUME_1M,
                 a.ASK_ORD_VOLUME_1M,
                 a.MID_ORD_VOLUME_1M,
                 a.TRADES_1M
            from (select *
                    from P_RT1MUDATA
                   where sec_long_id = :1
                     and trad_dt between
                         to_date(substr(:2, 1, 8), 'yyyymmdd') and
                         to_date(substr(:3, 1, 8), 'yyyymmdd')) a
            left outer join (select sec.sec_long_id,
                                   b.trad_dt,
                                   case
                                     when first_value(b.tot_ret)
                                      over(order by trad_dt desc) = 0 then
                                      null
                                     else
                                      (b.tot_ret / first_value(b.tot_ret)
                                       over(order by trad_dt desc)) *
                                      first_value(b.price_)
                                      over(order by trad_dt desc)
                                   end / b.price_ ratio_
                              from pricing_total_return b
                             inner join security_info sec on (b.security_code =
                                                             sec.security_code and
                                                             sec.security_type_code in
                                                             ('001001',
                                                              '001002') and
                                                             sec.primary_ex_code in
                                                             ('012001',
                                                              '012002',
                                                              '012003',
                                                              '012015') and
                                                             sec.sec_long_id = :4)
                                                         and b.trad_dt between
                                                             to_date(substr(:5,
                                                                            1,
                                                                            8),
                                                                     'yyyymmdd') and
                                                             to_date(substr(:6,
                                                                            1,
                                                                            8),
                                                                     'yyyymmdd')) b on (a.sec_long_id =
                                                                                       b.sec_long_id and
                                                                                       a.trad_dt =
                                                                                       b.trad_dt))
   WHERE VWAP_1M != 0

执行计划见附件

执行计划.doc

46.5 KB, 下载次数: 28

认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2010-10-29 14:28 | 显示全部楼层
db file sequential read  read by other session 等待事件查到的sql ,都是这条语句,有没有优化的建议?

使用道具 举报

回复
认证徽章
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
发表于 2010-10-29 14:29 | 显示全部楼层
cost只有360啊, 是不是会执行很多次?

使用道具 举报

回复
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2010-10-29 14:33 | 显示全部楼层
恩,客户端好像都在访问这条sql

使用道具 举报

回复
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2010-10-29 14:39 | 显示全部楼层
db file sequential read        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,        
db file sequential read        select TRAD_DT,        time_tab.minute_ RT_TIME_OF_TRADE,        LAST_PRICE,
db file sequential read        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,        
db file sequential read        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,        
read by other session        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,         
read by other session        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,         
read by other session        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,         
read by other session        SELECT VWAP_1M,TRADES_1M,VOLUME_NEW_1M   FROM (select a.sec_long_id,

使用道具 举报

回复
认证徽章
论坛徽章:
86
秀才
日期:2015-09-21 09:46:16目光如炬
日期:2014-07-28 06:00:03马上有钱
日期:2014-06-16 15:55:42马上有房
日期:2014-06-16 15:55:422014年世界杯参赛球队: 伊朗
日期:2014-06-13 11:29:242014年世界杯参赛球队:巴西
日期:2014-06-06 14:36:14马上有钱
日期:2014-04-04 13:51:21马上加薪
日期:2014-04-04 13:35:40马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02
发表于 2010-10-29 14:40 | 显示全部楼层
buffer cache 为14g

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表