查看: 2205|回复: 8

高手们看看能不能帮我优化下这个语句

[复制链接]
论坛徽章:
0
发表于 2009-6-2 20:23 | 显示全部楼层 |阅读模式
SELECT a.*, b.taskname
  FROM (SELECT   getsubscript_minute (to_date('2009-05-26','yyyy-mm-dd'),
                                      starttime,
                                      0.0208333
                                     ) AS period,
                 taskid1, taskid2, isdn,
                 SUM (CASE
                         WHEN processtype = 0 AND RESULT = 1
                            THEN 1
                         ELSE 0
                      END
                     ) attachsucccnt,
                 SUM (CASE
                         WHEN processtype = 0 AND RESULT <> 1
                            THEN 1
                         ELSE 0
                      END
                     ) attachfailcnt,
                 SUM (CASE
                         WHEN processtype = 5 AND RESULT = 1
                            THEN 1
                         ELSE 0
                      END
                     ) detachsucccnt,
                 SUM (CASE
                         WHEN processtype = 5 AND RESULT <> 1
                            THEN 1
                         ELSE 0
                      END
                     ) detachfailcnt,
                 AVG (CASE
                         WHEN (processtype = 0 AND RESULT <> 0)
                            THEN   (endtime - starttime) * 24 * 60 * 60 * 1000
                                 + msend
                                 - msstart
                      END
                     ) attachdelay,
                 AVG (CASE
                         WHEN (processtype = 5 AND RESULT <> 0)
                            THEN   (endtime - starttime) * 24 * 60 * 60 * 1000
                                 + msend
                                 - msstart
                      END
                     ) detachdelay
            FROM egb_gmmsm_cdr
           WHERE starttime >= to_date('2009-05-26','yyyy-mm-dd') AND starttime < to_date('2009-05-28','yyyy-mm-dd')
        GROUP BY getsubscript_minute (to_date('2009-05-26','yyyy-mm-dd'), starttime, 0.0208333),
                 taskid1,
                 taskid2,
                 isdn) a,
       egb_taskname b
WHERE a.taskid2 = b.taskid2 AND a.taskid1 = b.taskid1
招聘 : 数据库管理员
论坛徽章:
11
授权会员
日期:2009-06-17 21:55:31马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02劳斯莱斯
日期:2014-01-16 21:09:18复活蛋
日期:2012-11-21 19:44:35ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:31ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26ITPUB元老
日期:2010-08-09 11:32:43生肖徽章2007版:虎
日期:2009-11-24 18:46:412009日食纪念
日期:2009-07-22 09:30:00
发表于 2009-6-2 22:06 | 显示全部楼层
执行计划贴出来

使用道具 举报

回复
论坛徽章:
55
马上加薪
日期:2014-02-19 11:55:142010广州亚运会纪念徽章:排球
日期:2011-04-27 13:27:19SQL大赛参与纪念
日期:2011-04-13 12:08:172011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01生肖徽章2007版:兔
日期:2011-01-20 12:58:49
发表于 2009-6-2 22:08 | 显示全部楼层
有意思顶顶

使用道具 举报

回复
论坛徽章:
0
发表于 2009-6-2 22:21 | 显示全部楼层
关注

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:08:24
发表于 2009-6-2 23:07 | 显示全部楼层
执行计划,以及表egb_gmmsm_cdr a,egb_taskname b的大小,感觉用上临时表可能有点帮助!

使用道具 举报

回复
论坛徽章:
0
发表于 2009-6-3 00:04 | 显示全部楼层
顶执行计划

使用道具 举报

回复
论坛徽章:
136
ITPUB年度最佳技术回答奖
日期:2010-06-12 13:17:14现代
日期:2013-10-02 14:53:59路虎
日期:2013-11-22 12:26:182014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2009-6-3 08:46 | 显示全部楼层
目前的执行计划是怎样的,2天返回多少结果

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2009-6-19 16:54 | 显示全部楼层
两天的记录数及执行计划如下:
6910 rows selected.

Elapsed: 00:00:10.33

Execution Plan
----------------------------------------------------------
Plan hash value: 1460030473

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

| Id  | Operation                 | Name          | Rows  | Bytes |TempSpc| Cost
(%CPU)| Time     | Pstart| Pstop |

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

|   0 | SELECT STATEMENT          |               |   332K|    72M|       |  765
7   (1)| 00:01:32 |       |       |

|*  1 |  HASH JOIN                |               |   332K|    72M|  8160K|  765
7   (1)| 00:01:32 |       |       |

|   2 |   TABLE ACCESS FULL       | EGB_TASKNAME  | 70764 |  7325K|       |   24
3   (1)| 00:00:03 |       |       |

|   3 |   VIEW                    |               |   332K|    39M|       |  487
2   (2)| 00:00:59 |       |       |

|   4 |    SORT GROUP BY          |               |   332K|    17M|    50M|  487
2   (2)| 00:00:59 |       |       |

|   5 |     PARTITION RANGE SINGLE|               |   332K|    17M|       |   38
4   (5)| 00:00:05 |    91 |    91 |

|   6 |      TABLE ACCESS FULL    | EGB_GMMSM_CDR |   332K|    17M|       |   38
4   (5)| 00:00:05 |    91 |    91 |

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


Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("A"."TASKID2"="B"."TASKID2" AND "A"."TASKID1"="B"."TASKID1")


Statistics
----------------------------------------------------------
         10  recursive calls
          0  db block gets
       2767  consistent gets
        959  physical reads
        116  redo size
     696558  bytes sent via SQL*Net to client
       5802  bytes received via SQL*Net from client
        462  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
       6910  rows processed

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2009-6-19 17:14 | 显示全部楼层
高手们帮忙来分析下呢

使用道具 举报

回复

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

本版积分规则 发表回复

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