查看: 1855|回复: 2

sql优化问题

[复制链接]
论坛徽章:
1
生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
发表于 2011-9-6 14:28 | 显示全部楼层 |阅读模式
ora 11g,itraffic表为分区表,按月分区,存放24个月数据,每个月数据量在150000000,通过页面输入的时间范围分页显示查询结果,如下语句是否可优化?

select *
  from (select *
           from (select c.*, rownum n
                    from (select *
                             from (select /*
                                    +parallel(auto)+*/
                                     t.pno,
                                     t.ptype,
                                     count(distinct t.vecolor),
                                     count(distinct t.vtype)
                                      from itraffic t
                                     where t.pdate between to_date('2011-08-01 10:21:40','yyyy-mm-dd hh24:mi:ss')
                                       and to_date('2011-08-31 10:21:44','yyyy-mm-dd hh24:mi:ss')
                                       and t.pno is not null
                                       and t.pno <> '未标志'
                                     group by t.pno, t.ptype
                                    having count(distinct t.vecolor) > 1 or count(distinct t.vtype) > 1) b) c) d
          where d.n <= 13) e
where e.n > 0
论坛徽章:
4
鲜花蛋
日期:2011-07-21 16:06:54双黄蛋
日期:2011-09-02 20:36:17ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29奥运会纪念徽章:射箭
日期:2012-07-26 19:04:19
发表于 2011-9-6 14:46 | 显示全部楼层
其他信息呢,越多越好哟

使用道具 举报

回复
论坛徽章:
126
ITPUB元老
日期:2007-07-04 17:27:50会员2007贡献徽章
日期:2007-09-26 18:42:10现任管理团队成员
日期:2011-05-07 01:45:08优秀写手
日期:2015-01-09 06:00:14版主7段
日期:2015-07-16 02:10:00
发表于 2011-9-6 15:03 | 显示全部楼层


Try!

select   b.*
from  
(select  a.*,
         rownum rn
from
(select /*+ parallel(auto) */
        t.pno,
        t.ptype,
        count(distinct t.vecolor),
        count(distinct t.vtype)
  from itraffic t
where t.pdate between
       to_date('2011-08-01 10:21:40', 'yyyy-mm-dd hh24:mi:ss') and
       to_date('2011-08-31 10:21:44', 'yyyy-mm-dd hh24:mi:ss')
   and t.pno is not null
   and t.pno <> '未标志'
group by t.pno, t.ptype
having count(distinct t.vecolor) > 1 or count(distinct t.vtype) > 1) a
where rownum <= 13) b
where b.rn > 0;


使用道具 举报

回复

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

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