期货交易自动化论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 23|回复: 0

求大神指点!!! - 金融行业 - ITPUB论坛-专业的IT技术社区

[复制链接] |主动推送

285万

主题

285万

帖子

855万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8553710
发表于 2022-9-11 07:08:51 | 显示全部楼层 |阅读模式
环境:AIX 9.7.7, db2 9.7
在跑批量的时候临时表空间撑爆了,sql语句为select * from table a,table b WHERE A.KEY_1 BETWEEN 'XXX' AND 'XXX' AND A.KEY_1=B.KEY_1 ORDER BY A.KEY_1:,临时解决:runstats, bind--其中bind使用reopt once方式,这个解决方案不靠谱,过几天又会碰到临时表空间撑爆
我查看了下db2expln 执行计划,发现runstats前会走NLJOIN,并且先sort,再fetch
             Rows   
              Operator
               (ID)   
               Cost   
                  
           2.5195e+06
               n/a   
              RETURN   
             ( 1)   
           1.25652e+06
               |      
           2.5195e+06
               n/a   
              NLJOIN   
             ( 2)   
           1.25652e+06
            /       \----\
       2.5195e+06           *
         n/a           /--/ \
       TBSCAN       1      2.38815e+07
         ( 3)       n/a        n/a   
       533470     IXSCAN   Table:     
          |        (10)           B
       2.5195e+06    22.7051   
         n/a        |      
         SORT   2.38815e+07
         ( 4)   Index:     
       533292    BPK
          |      
       2.5195e+06
         n/a   
       FETCH   
         (--)   
       472945   
     /        \
2.5195e+06 2.38815e+07
   n/a        n/a   
    RIDSCN    Table:     
   ( 6)         A
   16098.3   
     |     
2.5195e+06
   n/a   
   SORT   
   ( 7)   
   16098.3   
     |     
2.5195e+06
   n/a   
    IXSCAN   
   ( 8)   
   12830.8   
   |      
2.38815e+07
Index:     
APK
家住海淀 发表于 2013-6-27 16:19

跑批的sql中为啥加入order by这种严重影响性能的子句啊
保证断点续作

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|期货交易自动化论坛

GMT+8, 2024-11-27 10:38 , Processed in 0.100406 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表