查看: 2551|回复: 6

sql优化

[复制链接]
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
发表于 2010-6-7 23:49 | 显示全部楼层 |阅读模式
sql本身并不复杂, 语句如下,并附上执行计划
SELECT ORG_HIER_DIM.ORG_12_ID,
ORG_HIER_DIM.ORG_1_ID,  
ORG_HIER_DIM.ORG_1_NAME,
ORG_HIER_DIM.ORG_1_LONG_NAME,
ORG_HIER_DIM.ORG_2_ID,  
ORG_HIER_DIM.ORG_2_NAME,     
ORG_HIER_DIM.ORG_2_LONG_NAME,
ORG_HIER_DIM.ORG_3_ID,   
ORG_HIER_DIM.ORG_3_NAME,     
ORG_HIER_DIM.ORG_3_LONG_NAME,
ORG_HIER_DIM.ORG_4_ID,   
ORG_HIER_DIM.ORG_4_NAME,
ORG_HIER_DIM.ORG_4_LONG_NAME,
ORG_HIER_DIM.ORG_5_ID,
ORG_HIER_DIM.ORG_5_NAME,     
ORG_HIER_DIM.ORG_5_LONG_NAME,
ORG_HIER_DIM.ORG_6_ID,   
ORG_HIER_DIM.ORG_6_NAME,     
ORG_HIER_DIM.ORG_6_LONG_NAME,
ORG_HIER_DIM.ORG_7_ID,  
ORG_HIER_DIM.ORG_7_NAME,     
ORG_HIER_DIM.ORG_7_LONG_NAME,
ORG_HIER_DIM.ORG_8_ID,  
ORG_HIER_DIM.ORG_8_NAME,     
ORG_HIER_DIM.ORG_8_LONG_NAME,
ORG_HIER_DIM.ORG_9_ID,  
ORG_HIER_DIM.ORG_9_NAME,     
ORG_HIER_DIM.ORG_9_LONG_NAME,
ORG_HIER_DIM.ORG_10_ID,  
ORG_HIER_DIM.ORG_10_NAME,     
ORG_HIER_DIM.ORG_10_LONG_NAME,
ORG_HIER_DIM.ORG_11_ID,  
ORG_HIER_DIM.ORG_11_NAME,     
ORG_HIER_DIM.ORG_11_LONG_NAME,
ORG_HIER_DIM.ORG_12_ID,
ORG_HIER_DIM.ORG_12_NAME,
ORG_HIER_DIM.ORG_12_LONG_NAME,
ORG_HIER_DIM.ORG_ORIG_LVL,
ORG_DIM.STTUS_CODE,
ORG_DIM.LONG_DESC,
ORG_DIM.NAME,
ORG_DIM.LONG_NAME,
ORG_DIM.DELET_DATE,
ORG_DIM.FUNC_ID,
ORG_DIM.LEGAL_ENT_ID,
ORG_DIM.ORG_OBJ_TYPE_ID,
ORG_DIM.TRDLN_ID,
SYSDATE
FROM
ADWGD_CHMCL.ORG_DIM,
ADWGD_CHMCL.ORG_HIER_DIM
WHERE
ORG_HIER_DIM.ORG_HIER_ID ='817'
AND ORG_DIM.CURR_IND='Y'
AND ORG_HIER_DIM.CURR_IND='Y'
AND ORG_DIM.ORG_ID in (
select ORG_ID from ADWGD_CHMCL.CHMCL_CURR_SHPMT_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_HIST_SHPMT_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_OPEN_ORDR_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_ORG_OBJTV_SFCT
)
AND ORG_HIER_DIM.ORG_12_SKID = ORG_DIM.ORG_SKID;






执行计划
----------------------------------------------------------
Plan hash value: 3921631931

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

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

----

| Id  | Operation                                 | Name                      |
Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distr

ib |

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

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

----

|   0 | SELECT STATEMENT                          |                           |
  142 |   119K|  3837   (1)| 00:00:54 |       |       |        |      |
   |

|   1 |  PX COORDINATOR                           |                           |
      |       |            |          |       |       |        |      |
   |

|   2 |   PX SEND QC (RANDOM)                     | :TQ10002                  |
  142 |   119K|  3837   (1)| 00:00:54 |       |       |  Q1,02 | P->S | QC (RAND

)  |

|*  3 |    HASH JOIN                              |                           |
  142 |   119K|  3837   (1)| 00:00:54 |       |       |  Q1,02 | PCWP |
   |

|   4 |     PX RECEIVE                            |                           |
1732 |   167K|   526   (3)| 00:00:08 |       |       |  Q1,02 | PCWP |
   |

|   5 |      PX SEND BROADCAST                    | :TQ10001                  |
1732 |   167K|   526   (3)| 00:00:08 |       |       |  Q1,01 | P->P | BROADCAS

T  |

|*  6 |       HASH JOIN                           |                           |
1732 |   167K|   526   (3)| 00:00:08 |       |       |  Q1,01 | PCWP |
   |

|   7 |        BUFFER SORT                        |                           |
      |       |            |          |       |       |  Q1,01 | PCWC |
   |

|   8 |         PX RECEIVE                        |                           |
1731 | 15579 |     6  (67)| 00:00:01 |       |       |  Q1,01 | PCWP |
   |

|   9 |          PX SEND BROADCAST                | :TQ10000                  |
1731 | 15579 |     6  (67)| 00:00:01 |       |       |        | S->P | BROADCAS

T  |

|  10 |           VIEW                            | VW_NSO_1                  |
1731 | 15579 |     6  (67)| 00:00:01 |       |       |        |      |
   |

|  11 |            SORT UNIQUE                    |                           |
1731 | 15579 |     6  (84)| 00:00:01 |       |       |        |      |
   |

|  12 |             UNION-ALL                     |                           |
      |       |            |          |       |       |        |      |
   |

|  13 |              PARTITION LIST ALL           |                           |
  564 |  5076 |     1   (0)| 00:00:01 |     1 |     3 |        |      |
   |

|  14 |               BITMAP CONVERSION TO ROWIDS |                           |
  564 |  5076 |     1   (0)| 00:00:01 |       |       |        |      |
   |

|  15 |                BITMAP INDEX FAST FULL SCAN| CHMCL_CURR_SHPMT_SFCT_BX5 |
      |       |            |          |     1 |     3 |        |      |
   |

|  16 |              PARTITION LIST ALL           |                           |
1155 | 10395 |            |          |     1 |     3 |        |      |
   |

|  17 |               BITMAP CONVERSION TO ROWIDS |                           |
1155 | 10395 |            |          |       |       |        |      |
   |

|  18 |                BITMAP INDEX FAST FULL SCAN| CHMCL_HIST_SHPMT_SFCT_BX5 |
      |       |            |          |     1 |     3 |        |      |
   |

|  19 |              PARTITION LIST ALL           |                           |
   11 |    99 |     1   (0)| 00:00:01 |     1 |     3 |        |      |
   |

|  20 |               BITMAP CONVERSION TO ROWIDS |                           |
   11 |    99 |     1   (0)| 00:00:01 |       |       |        |      |
   |

|  21 |                BITMAP INDEX FAST FULL SCAN| CHMCL_OPEN_ORDR_SFCT_BX5  |
      |       |            |          |     1 |     3 |        |      |
   |

|  22 |              PARTITION LIST ALL           |                           |
    1 |     9 |            |          |     1 |     3 |        |      |
   |

|  23 |               BITMAP CONVERSION TO ROWIDS |                           |
    1 |     9 |            |          |       |       |        |      |
   |

|  24 |                BITMAP INDEX FAST FULL SCAN| CHMCL_ORG_OBJTV_SFCT_BX3  |
      |       |            |          |     1 |     3 |        |      |
   |

|  25 |        PX BLOCK ITERATOR                  |                           |
  404K|    34M|   518   (2)| 00:00:08 |       |       |  Q1,01 | PCWC |
   |

|* 26 |         TABLE ACCESS FULL                 | ORG_DIM                   |
  404K|    34M|   518   (2)| 00:00:08 |       |       |  Q1,01 | PCWP |
   |

|  27 |     PX BLOCK ITERATOR                     |                           |
32972 |    24M|  3311   (1)| 00:00:47 |       |       |  Q1,02 | PCWC |
   |

|* 28 |      TABLE ACCESS FULL                    | ORG_HIER_DIM              |
32972 |    24M|  3311   (1)| 00:00:47 |       |       |  Q1,02 | PCWP |
   |

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

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

----


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

   3 - access("ORG_HIER_DIM"."ORG_12_SKID"="ORG_DIM"."ORG_SKID")
   6 - access("ORG_DIM"."ORG_ID"="$nso_col_1")
  26 - filter("ORG_DIM"."CURR_IND"='Y')
  28 - filter("ORG_HIER_DIM"."ORG_HIER_ID"='817' AND "ORG_HIER_DIM"."CURR_IND"='

Y')



统计信息
----------------------------------------------------------
        721  recursive calls
          0  db block gets
      24046  consistent gets
      20028  physical reads
          0  redo size
       6965  bytes sent via SQL*Net to client
        240  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         10  sorts (memory)
          0  sorts (disk)
          9  rows processed



客户非要说union all占用过多资源,希望能优化,但是结果其实并不是这样,union all的表上都创建了bm索引,而且也有启用了并发.请各位高手帮忙看看是否还有其他写法可以绕开union all达到类似的性能效果,谢谢! 
论坛徽章:
86
2015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11优秀写手
日期:2013-12-18 09:29:11日产
日期:2013-10-17 08:44:39马自达
日期:2013-08-26 16:28:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-23 16:55:51马上有房
日期:2014-02-19 11:55:14
发表于 2010-6-8 08:09 | 显示全部楼层
关闭并行,alter session set "_b_tree_bitmap_plans"=false试一下。

使用道具 举报

回复
论坛徽章:
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
发表于 2010-6-8 08:17 | 显示全部楼层
这种语句就别开并行了,返回的行数也不多,看看什么条件过滤了大部分结果

使用道具 举报

回复
论坛徽章:
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-6-8 10:04 | 显示全部楼层
不用union用or?

使用道具 举报

回复
论坛徽章:
7
会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:06:132011新春纪念徽章
日期:2011-01-04 10:37:342011新春纪念徽章
日期:2011-02-18 11:43:342012新春纪念徽章
日期:2012-01-04 11:50:44
 楼主| 发表于 2010-6-11 19:52 | 显示全部楼层
主要的费用是用在全表扫描ORG_HIER_DIM,我创建了create bitmap index ADWGQ.ORG_HIER_DIM_BX3 on ADWGQ.ORG_HIER_DIM(ORG_HIER_ID,CURR_IND,ORG_12_SKID),取消了全表扫描,但是客户说不能这样创建索引。
我在union all里面增加了group by语句后,逻辑读稍微减少了一些。
select ORG_ID from ADWGD_CHMCL.CHMCL_CURR_SHPMT_SFCT
group by ORG_ID
union select ORG_ID from ADWGD_CHMCL.CHMCL_HIST_SHPMT_SFCT
group by ORG_ID
union select ORG_ID from ADWGD_CHMCL.CHMCL_OPEN_ORDR_SFCT
group by ORG_ID
union select ORG_ID from ADWGD_CHMCL.CHMCL_ORG_OBJTV_SFCT
group by ORG_ID

但是不太清楚为什么增加group by之后就避免了全表扫描ORG_DIM,而是用了上面的一个索引。

使用道具 举报

回复
论坛徽章:
0
发表于 2010-6-24 03:21 | 显示全部楼层
select ORG_ID from ADWGD_CHMCL.CHMCL_CURR_SHPMT_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_HIST_SHPMT_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_OPEN_ORDR_SFCT
union select ORG_ID from ADWGD_CHMCL.CHMCL_ORG_OBJTV_SFCT

用了多久时间呢。

使用道具 举报

回复
论坛徽章:
400
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2010-6-24 04:53 | 显示全部楼层
排版好乱

使用道具 举报

回复

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

本版积分规则 发表回复

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号
  
快速回复 返回顶部 返回列表