查看: 2053|回复: 3

[性能调整] 优化语句,请提建议

[复制链接]
论坛徽章:
15
数据库板块每日发贴之星
日期:2008-06-30 01:01:54奥运会纪念徽章:羽毛球
日期:2012-06-26 15:21:24ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26数据库板块每日发贴之星
日期:2011-07-15 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010年世界杯参赛球队:加纳
日期:2010-07-27 08:59:132010年世界杯参赛球队:智利
日期:2010-07-14 16:06:302010年世界杯参赛球队:斯洛伐克
日期:2010-07-10 02:35:492010年世界杯参赛球队:英格兰
日期:2010-07-09 18:54:212010年世界杯参赛球队:瑞士
日期:2010-01-22 13:33:24
发表于 2010-12-10 14:03 | 显示全部楼层 |阅读模式
13:52:10 SQL> SELECT COUNT(1) record_count
13:52:11   2    FROM BD_PSNBASDOC,
13:52:11   3         BD_PSNDOC BD_PSNDOC,
13:52:11   4         BD_DEPTDOC BD_DEPTDOC,
13:52:11   5         BD_PSNCL BD_PSNCL,
13:52:11   6         OM_JOB OM_JOB,
13:52:11   7         OM_DUTY OM_DUTY,
13:52:11   8         BD_DEFDOC BD_DEFDOC,
13:52:11   9         BD_CORP BD_CORP
13:52:11  10   WHERE (BD_PSNBASDOC.PK_PSNBASDOC = BD_PSNDOC.PK_PSNBASDOC)
13:52:11  11     AND (BD_PSNBASDOC.PK_CORP = BD_PSNDOC.PK_CORP)
13:52:11  12     AND (BD_PSNDOC.PK_DEPTDOC = BD_DEPTDOC.PK_DEPTDOC(+))
13:52:11  13     AND (BD_PSNDOC.PK_PSNCL = BD_PSNCL.PK_PSNCL(+))
13:52:11  14     AND (BD_PSNDOC.PK_OM_JOB = OM_JOB.PK_OM_JOB(+))
13:52:11  15     AND (BD_PSNDOC.DUTYNAME = OM_DUTY.PK_OM_DUTY(+))
13:52:11  16     AND (BD_PSNBASDOC.TITLETECHPOST = BD_DEFDOC.PK_DEFDOC(+))
13:52:11  17     AND (BD_PSNBASDOC.PK_CORP = BD_CORP.PK_CORP(+))
13:52:11  18     AND ((BD_PSNDOC.INDOCFLAG = 'Y'))
13:52:11  19  
13:52:11 SQL> /


Execution Plan
----------------------------------------------------------
Plan hash value: 1286692514

-------------------------------------------------------------------------------------------
| Id  | Operation                 | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT          |               |     1 |   236 |   739   (3)| 00:00:09 |
|   1 |  SORT AGGREGATE           |               |     1 |   236 |            |          |
|*  2 |   HASH JOIN RIGHT OUTER   |               | 22238 |  5125K|   739   (3)| 00:00:09 |
|   3 |    INDEX FULL SCAN        | PK_BD_PSNCL   |    21 |   441 |     1   (0)| 00:00:01 |
|   4 |    NESTED LOOPS OUTER     |               | 21183 |  4447K|   738   (3)| 00:00:09 |
|*  5 |     HASH JOIN RIGHT OUTER |               | 21182 |  4012K|   735   (3)| 00:00:09 |
|   6 |      INDEX FULL SCAN      | PK_BD_CORP    |   184 |   920 |     1   (0)| 00:00:01 |
|   7 |      NESTED LOOPS OUTER   |               | 21182 |  3909K|   734   (3)| 00:00:09 |
|   8 |       NESTED LOOPS OUTER  |               | 21182 |  3475K|   732   (2)| 00:00:09 |
|   9 |        NESTED LOOPS OUTER |               | 21182 |  3040K|   730   (2)| 00:00:09 |
|* 10 |         HASH JOIN         |               | 21182 |  2606K|   729   (2)| 00:00:09 |
|  11 |          TABLE ACCESS FULL| BD_PSNBASDOC  | 25076 |   685K|   414   (2)| 00:00:05 |
|* 12 |          TABLE ACCESS FULL| BD_PSNDOC     | 24074 |  2303K|   314   (2)| 00:00:04 |
|* 13 |         INDEX UNIQUE SCAN | PK_BD_DEFDOC  |     1 |    21 |     1   (0)| 00:00:01 |
|* 14 |        INDEX UNIQUE SCAN  | PK_OM_DUTY    |     1 |    21 |     1   (0)| 00:00:01 |
|* 15 |       INDEX UNIQUE SCAN   | PK_OM_JOB     |     1 |    21 |     1   (0)| 00:00:01 |
|* 16 |     INDEX UNIQUE SCAN     | PK_BD_DEPTDOC |     1 |    21 |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------------------------

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

   2 - access("BD_PSNDOC"."PK_PSNCL"="BD_PSNCL"."PK_PSNCL"(+))
   5 - access("BD_PSNBASDOC"."PK_CORP"="BD_CORP"."PK_CORP"(+))
  10 - access("BD_PSNBASDOC"."PK_PSNBASDOC"="BD_PSNDOC"."PK_PSNBASDOC" AND
              "BD_PSNBASDOC"."PK_CORP"="BD_PSNDOC"."PK_CORP")
  12 - filter("BD_PSNDOC"."INDOCFLAG"='Y')
  13 - access("BD_PSNBASDOC"."TITLETECHPOST"="BD_DEFDOC"."PK_DEFDOC"(+))
  14 - access("BD_PSNDOC"."DUTYNAME"="OM_DUTY"."PK_OM_DUTY"(+))
  15 - access("BD_PSNDOC"."PK_OM_JOB"="OM_JOB"."PK_OM_JOB"(+))
  16 - access("BD_PSNDOC"."PK_DEPTDOC"="BD_DEPTDOC"."PK_DEPTDOC"(+))


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
      54799  consistent gets
       1455  physical reads
          0  redo size
        341  bytes sent via SQL*Net to client
        350  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

13:52:17 SQL>
论坛徽章:
11
2010新春纪念徽章
日期:2010-03-01 11:08:27SQL大赛参与纪念
日期:2011-04-13 12:08:172010广州亚运会纪念徽章:空手道
日期:2011-03-08 15:29:592011新春纪念徽章
日期:2011-02-18 11:43:362010广州亚运会纪念徽章:台球
日期:2011-01-26 10:41:28数据库板块每日发贴之星
日期:2010-12-10 01:01:022010广州亚运会纪念徽章:网球
日期:2010-12-09 13:11:342010广州亚运会纪念徽章:篮球
日期:2010-12-06 14:28:04辩论纪念章
日期:2010-11-15 10:46:13ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52
发表于 2010-12-10 15:07 | 显示全部楼层
楼主可以在标题里边加上呼叫按妞&棉花糖,嘿

使用道具 举报

回复
招聘 : Java研发
认证徽章
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14蜘蛛蛋
日期:2012-12-26 18:16:01茶鸡蛋
日期:2012-11-16 08:12:48ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:网球
日期:2012-08-23 14:58:08奥运会纪念徽章:沙滩排球
日期:2012-07-19 17:28:14版主2段
日期:2012-07-07 02:21:02咸鸭蛋
日期:2012-03-23 18:17:482012新春纪念徽章
日期:2012-02-13 15:13:512012新春纪念徽章
日期:2012-02-13 15:13:51
发表于 2010-12-10 15:37 | 显示全部楼层
单就这条sql来说,可以直接去掉若干表

使用道具 举报

回复
论坛徽章:
13
2010广州亚运会纪念徽章:轮滑
日期:2010-09-03 12:44:53马上有房
日期:2014-04-04 13:51:34马上加薪
日期:2014-04-04 13:35:40优秀写手
日期:2014-03-14 06:00:13夏利
日期:2013-08-05 18:32:18复活蛋
日期:2013-06-25 17:22:592013年新春福章
日期:2013-02-25 14:51:24蛋疼蛋
日期:2013-01-08 18:08:502011新春纪念徽章
日期:2011-02-18 11:43:33生肖徽章2007版:兔
日期:2011-01-20 12:58:49
发表于 2010-12-10 23:28 | 显示全部楼层
从执行计划中可以看到很多的表执行是唯一索引扫描,连接方式是外联接,这些其实对你要的结果count(1)没有任何影响,
既然这么多的键位有索引,何不用count(非空索引列)替换掉count(1)呢。

使用道具 举报

回复

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

本版积分规则 发表回复

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