查看: 2615|回复: 8

帮忙看看下面的语句怎么优化?

[复制链接]
论坛徽章:
3
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:54
发表于 2010-4-14 08:48 | 显示全部楼层 |阅读模式
select distinct D.PART_NO
FROM
barcode_1.PROJECT_LIST A,
barcode_1.CUSTOMER_BRCD_FMT B,
barcode_1.DEPART_PROJ C,
barcode_1.PARTNO_LIST D  
where
A.CUSTOMER_ID=B.CUSTOMER_ID
and A.ACTIVE_STATUS='A'
and A.PROJ_CODE=C.PROJ_CODE
and B.DESCRIPTION='Winpoint Media Barcode'
AND D.PROJ_CODE=A.PROJ_CODE
and C.CUST_BRCD_FMT_ID=B.CUST_BRCD_FMT_ID
and A.PROTOTYPE=B.PROTOTYPE


SQL> select distinct D.PART_NO
  2  FROM
  3  barcode_1.PROJECT_LIST A,
  4  barcode_1.CUSTOMER_BRCD_FMT B,
  5  barcode_1.DEPART_PROJ C,
  6  barcode_1.PARTNO_LIST D
  7  where
  8  A.CUSTOMER_ID=B.CUSTOMER_ID
  9  and A.ACTIVE_STATUS='A'
10  and A.PROJ_CODE=C.PROJ_CODE
11  and B.DESCRIPTION='Winpoint Media Barcode'
12  AND D.PROJ_CODE=A.PROJ_CODE
13  and C.CUST_BRCD_FMT_ID=B.CUST_BRCD_FMT_ID
14  and A.PROTOTYPE=B.PROTOTYPE;

96 rows selected.


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=14 Card=12 Bytes=864
          )

   1    0   SORT (UNIQUE) (Cost=14 Card=12 Bytes=864)
   2    1     HASH JOIN (Cost=11 Card=12 Bytes=864)
   3    2       HASH JOIN (Cost=7 Card=70 Bytes=4340)
   4    3         TABLE ACCESS (FULL) OF 'PROJECT_LIST' (Cost=2 Card=2
          47 Bytes=3211)

   5    3         MERGE JOIN (CARTESIAN) (Cost=4 Card=697 Bytes=34153)
   6    5           TABLE ACCESS (FULL) OF 'CUSTOMER_BRCD_FMT' (Cost=2
           Card=1 Bytes=29)

   7    5           BUFFER (SORT) (Cost=2 Card=697 Bytes=13940)
   8    7             TABLE ACCESS (FULL) OF 'PARTNO_LIST' (Cost=2 Car
          d=697 Bytes=13940)

   9    2       INDEX (FAST FULL SCAN) OF 'SYS_C007640' (UNIQUE) (Cost
          =3 Card=3283 Bytes=32830)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        107  consistent gets
         60  physical reads
          0  redo size
       2480  bytes sent via SQL*Net to client
        566  bytes received via SQL*Net from client
          8  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
         96  rows processed
论坛徽章:
48
马上加薪
日期:2014-02-19 11:55:142011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26ITPUB季度 技术新星
日期:2010-05-17 15:53:17数据库板块每日发贴之星
日期:2010-05-12 01:01:01数据库板块每日发贴之星
日期:2010-05-08 01:01:01数据库板块每日发贴之星
日期:2010-05-07 01:01:02数据库板块每日发贴之星
日期:2010-04-29 01:01:01
发表于 2010-4-14 08:52 | 显示全部楼层
这个sql现在有性能问题么

使用道具 举报

回复
招聘 : 数据库管理员
认证徽章
论坛徽章:
20
祖国60周年纪念徽章
日期:2009-10-09 08:28:00数据库板块每日发贴之星
日期:2011-02-20 01:01:01ITPUB季度 技术新星
日期:2011-04-02 10:31:09ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:54:26玉石琵琶
日期:2012-02-21 15:04:38最佳人气徽章
日期:2012-03-13 17:39:18ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242011新春纪念徽章
日期:2011-02-18 11:43:33
发表于 2010-4-14 08:57 | 显示全部楼层
感觉是没多大问题的

使用道具 举报

回复
论坛徽章:
3
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:54
 楼主| 发表于 2010-4-14 09:19 | 显示全部楼层
现在问题不大(数据量少,影响不大)。

帮忙看一下:


SQL> SELECT A1.BARCODE FROM fgbs.TB_FGBS_OCR_PARAMETER A1
  2  WHERE A1.CREATE_TIME>SYSDATE@!-5
  3  AND A1.REMOVEFLAG=1 AND A1.SI_FLAG='N';

no rows selected


Execution Plan
----------------------------------------------------------




Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
     215989  consistent gets
      22998  physical reads
         60  redo size
        223  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

使用道具 举报

回复
论坛徽章:
1
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
发表于 2010-4-14 11:40 | 显示全部楼层
215989  consistent gets
      22998  physical reads
根据数据分布建立索引吧。

使用道具 举报

回复
论坛徽章:
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-4-14 20:17 | 显示全部楼层
原帖由 jackli00 于 2010-4-14 09:19 发表
现在问题不大(数据量少,影响不大)。

帮忙看一下:


SQL> SELECT A1.BARCODE FROM fgbs.TB_FGBS_OCR_PARAMETER A1
  2  WHERE A1.CREATE_TIME>SYSDATE@!-5
  3  AND A1.REMOVEFLAG=1 AND A1.SI_FLAG='N';

no rows selected


Execution Plan
----------------------------------------------------------




Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
     215989  consistent gets
      22998  physical reads
         60  redo size
        223  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed


这个执行计划怎么是空?应该是没有索引。

使用道具 举报

回复
论坛徽章:
3
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:54
 楼主| 发表于 2010-4-14 23:11 | 显示全部楼层
已存在索引,分析表和索引后,用autotrace不能显示执行计划。不知为何??
不过在v$sql_plan中存在执行计划信息》

使用道具 举报

回复
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2010-4-14 23:15 | 显示全部楼层
原帖由 jackli00 于 2010-4-14 23:11 发表
已存在索引,分析表和索引后,用autotrace不能显示执行计划。不知为何??
不过在v$sql_plan中存在执行计划信息》


explain plan for select ....
select * from table(dbms_xplan.display);

使用道具 举报

回复
论坛徽章:
3
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:26ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:54
 楼主| 发表于 2010-4-14 23:26 | 显示全部楼层
谢了班竹,明天再试。

使用道具 举报

回复

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

本版积分规则 发表回复

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