123
返回列表 发新帖
楼主: xteitxu

[性能调整] 逻辑读高的SQL请教

[复制链接]
论坛徽章:
314
行业板块每日发贴之星
日期: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
21#
发表于 2020-11-14 09:25 | 只看该作者
xteitxu 发表于 2020-11-13 17:37
快周末了,顶一下这个问题

试试左关联主表,看看逻辑读多少?照我的想法,应该和INNER JOIN 差不了多少,

使用道具 举报

回复
论坛徽章:
11
2012新春纪念徽章
日期:2012-01-04 11:56:442015年新春福章
日期:2015-03-06 11:58:39暖羊羊
日期:2015-03-04 14:53:002014年新春福章
日期:2014-02-18 16:44:08问答徽章
日期:2014-01-02 15:42:02优秀写手
日期:2013-12-18 09:29:11ITPUB社区12周年站庆徽章
日期:2013-08-20 11:30:112013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-01-25 13:54:43奥运纪念徽章
日期:2012-12-06 09:21:40
22#
 楼主| 发表于 2020-11-14 16:42 | 只看该作者
ZALBB 发表于 2020-11-14 09:25
试试左关联主表,看看逻辑读多少?照我的想法,应该和INNER JOIN 差不了多少,

SELECT SYS_CONNECT_BY_PATH(TREE.INDICATION_ID, '|#|') ID_PATH,
       SYS_CONNECT_BY_PATH(TREE.CN_NAME, '|#|') NAME_PATH
  FROM (SELECT BIT.ID,
               BIT.PID,
               BIT.INDICATION_ID,
               BIT.EN_NAME,
               BII.CN_NAME CN_NAME
          FROM BD_INDICATION_TREE BIT LEFT JOIN BD_INDICATION_INFO BII
         ON BII.ID = BIT.INDICATION_ID
           ) TREE
           where TREE.INDICATION_ID IN ('1201876611926851663')
START WITH TREE.PID = '-1'
CONNECT BY TREE.PID = PRIOR ID;

使用道具 举报

回复
论坛徽章:
11
2012新春纪念徽章
日期:2012-01-04 11:56:442015年新春福章
日期:2015-03-06 11:58:39暖羊羊
日期:2015-03-04 14:53:002014年新春福章
日期:2014-02-18 16:44:08问答徽章
日期:2014-01-02 15:42:02优秀写手
日期:2013-12-18 09:29:11ITPUB社区12周年站庆徽章
日期:2013-08-20 11:30:112013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-01-25 13:54:43奥运纪念徽章
日期:2012-12-06 09:21:40
23#
 楼主| 发表于 2020-11-14 16:44 | 只看该作者
ZALBB 发表于 2020-11-14 09:25
试试左关联主表,看看逻辑读多少?照我的想法,应该和INNER JOIN 差不了多少,

----------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                | Name               | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
----------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                    |      1 |        |      1 |00:00:00.17 |    1870 |       |       |          |
|*  1 |  FILTER                                  |                    |      1 |        |      1 |00:00:00.17 |    1870 |       |       |          |
|*  2 |   CONNECT BY NO FILTERING WITH START-WITH|                    |      1 |        |  13509 |00:00:00.16 |    1870 |       |       |          |
|*  3 |    HASH JOIN RIGHT OUTER                 |                    |      1 |   1818K|  13509 |00:00:00.06 |    1870 |  1116K|  1116K| 1423K (0)|
|   4 |     TABLE ACCESS FULL                    | BD_INDICATION_INFO |      1 |   5990 |   5990 |00:00:00.01 |     626 |       |       |          |
|   5 |     TABLE ACCESS FULL                    | BD_INDICATION_TREE |      1 |  13509 |  13509 |00:00:00.01 |    1244 |       |       |          |
----------------------------------------------------------------------------------------------------------------------------------------------------

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

   1 - filter("TREE"."INDICATION_ID"=U'1201876611926851663')
   2 - access("TREE"."PID"=PRIOR NULL)
       filter("BIT"."PID"=U'-1')
   3 - access("BII"."ID"="BIT"."INDICATION_ID"



这个是不是很优秀?

使用道具 举报

回复
论坛徽章:
11
2012新春纪念徽章
日期:2012-01-04 11:56:442015年新春福章
日期:2015-03-06 11:58:39暖羊羊
日期:2015-03-04 14:53:002014年新春福章
日期:2014-02-18 16:44:08问答徽章
日期:2014-01-02 15:42:02优秀写手
日期:2013-12-18 09:29:11ITPUB社区12周年站庆徽章
日期:2013-08-20 11:30:112013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-01-25 13:54:43奥运纪念徽章
日期:2012-12-06 09:21:40
24#
 楼主| 发表于 2020-11-14 16:45 | 只看该作者
ZALBB 发表于 2020-11-14 09:25
试试左关联主表,看看逻辑读多少?照我的想法,应该和INNER JOIN 差不了多少,

----------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                | Name               | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
----------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                    |      1 |        |      1 |00:00:00.17 |    1870 |       |       |          |
|*  1 |  FILTER                                  |                    |      1 |        |      1 |00:00:00.17 |    1870 |       |       |          |
|*  2 |   CONNECT BY NO FILTERING WITH START-WITH|                    |      1 |        |  13509 |00:00:00.16 |    1870 |       |       |          |
|*  3 |    HASH JOIN RIGHT OUTER                 |                    |      1 |   1818K|  13509 |00:00:00.06 |    1870 |  1116K|  1116K| 1423K (0)|
|   4 |     TABLE ACCESS FULL                    | BD_INDICATION_INFO |      1 |   5990 |   5990 |00:00:00.01 |     626 |       |       |          |
|   5 |     TABLE ACCESS FULL                    | BD_INDICATION_TREE |      1 |  13509 |  13509 |00:00:00.01 |    1244 |       |       |          |
----------------------------------------------------------------------------------------------------------------------------------------------------

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

   1 - filter("TREE"."INDICATION_ID"=U'1201876611926851663')
   2 - access("TREE"."PID"=PRIOR NULL)
       filter("BIT"."PID"=U'-1')
   3 - access("BII"."ID"="BIT"."INDICATION_ID"



这个是不是很优秀?

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期: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
25#
发表于 2020-11-14 20:48 | 只看该作者
对的,说明是标量子查询操作,消耗了大量的逻辑读,

使用道具 举报

回复

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

本版积分规则 发表回复

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