IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

How to optimize DB2 选择 query to reduce cost


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
sandip_mainframe
警告:2

新的用户


已加入:2006年9月20日
帖子:63
地点:浦那

发布发表:2013年1月8日,星期二,下午3:45
引用回复

大家好,

我们有一项日常运行的工作,在此工作中,该程序中调用了一个程序,以下查询占用大量资源
执行时间,大约浪费了95-96%的时间在I / O调用上。请提出如何优化此查询的建议。
请在此处找到所需的详细信息。

码:
执行SQL                                           
   SELECT IFNULL(SUM(X_AMT),0)         
   INTO :WS-IS-CURNT                             
   FROM XYZ_ABC                           
      WHERE XX_NUM      = :XYZ-ABC.XX-NUM (Table host variables)
       AND YY_NUM       = :XYZ-ABC.YY-NUM  (Table host variables)
       AND X_YEAR   = :WS-YEAR-CUR     (工作存储变量)       
       AND Y_MONTH = :WS-MONTH-CUR (工作存储变量)       
   GROUP BY YY_NUM,XX_NUM,                   
            X_YEAR, Y_MONTH           
结束执行。                                 


索引列:
码:
YY_NUM
XX_NUM
X_YEAR
Y_MONTH
光盘


表格详情:
码:
XX_NUM   CHAR        12
YY_NUM   CHAR        12
X_YEAR    DECIMAL   02
Y_MONTH十进制   02
光盘       CHAR        02

X_AMT十进制11



APPTUNE的建议:
码:
此选择语句已执行 报告期间1605K次   
间隔。                                                             
                                                                     
语句的平均SQL耗时  00:00.00486 AND THE 
每个语句的平均SQL Server 中央处理器时间  00:00.00011.               
                                                                     
此语句平均所需的获取页数     3.42,
哪个很棒(LESS THAN  10 ).      0.00  PAGES, OR   0.0 %, ARE
从缓冲区池中检索而不会增加I / O的成本。 
此缓冲池命中率很差(少于或等于50%).     
此语句仅在I / O中花费97.9%的时间 
最长的时间组件。   


记录日志:


呼叫     SECT  STMT   + --- SQL-+ +-总SQL时间-+         
类型      没有。   NO.   CALLS  ERRS  ELAPSED     CPU         GETPAGES
-------- ----- ------ ------ ----- ----------- --------- ---------
选择      30  15505  1502K     0 2:17:03.163 02:26.77652  5243681
                        平均S:  00:00.00548 00:00.00010        3


此查询的EXPLIAN如下
码:
STMTNO   COST * RATE SQL语句                       
15505       6.096961 选择 IFNULL ( 和 ( X_AMT ) , 0 )


查询的详细信息如下-

码:
声明类型...。静态             分布类型.... N / P
呼叫 类型......... 选择             要求的位置。 N / P

事件                                      总     SQL 呼叫
----------------------------------- ------------ --- ---------
SQL 呼叫S..........................:     1501547             
IN-SQL ELAPSED ....................................: 2:17:03.163  00:00.00548
IN-SQL 中央处理器 ........................: 02:26.77652  00:00.00010
IN-SQL ZIIP ...........................: 00:00.00000  00:00.00000
GETPAGE COUNT ......................:     5243681            3
                                                             
                                                   AVERAGE PE
事件                                      总      SQL CAL
                                                             
IN-SQL 中央处理器时间...: 02:26.77652   00:00.00010
同步I / O时间..................: 1:42:41.312   00:00.00410
ASYNC I / O TIME ................................: 31:47.87067   00:00.00127
锁定时间.........................: 00:00.17485   00:00.00000
其他等待时间......................: 00:00.00000   00:00.00000
未归类.....................: 00:07.02914   00:00.00000
                                                             
-------------------------------------------------- - 前高后低
                   HIGH                                     
中央处理器.............................................: 00:00.00094
耗时....................................: 00:00.70539
获取页面.........................................................:        8
同步读取I / OS ..............................:        6


                                                     AVERAGE 
缓冲区统计                             TOTAL  PER 呼叫
------------------------------------------- -------  --------
SQL 呼叫S.................................: 1501547           
GETPAGE REQUEST ...........................: 5243681         3
 GETPAGE Failure ................:       0         0
预取要求.............................:  651374         0
 连续....................................:       0         0
 列表....................................:       0         0
 动态.................................:  651374         0
阅读整页......................:  14885K        10
                                                             
BPOOL更新......................................:       0         0


                                                       TOTAL         TOTAL 
类型 OF WAIT                                           NUMBER      WAIT TIME
-------------------------------------------------- ---------     ----------
I / O等待                                                                   
 同步I / O ...........................................:  2127219     1:42:41.31
 异步读取I / O ............................:   542510     31:47.8706
 异步写I / O ............................:        0             N/
 日志写入I / O ...............................:        0             N/
 提交阶段1写入I / O等待....................:        0             N/
 存档日志.....................................:        0             N/
 磁带存档读取......................:        0             N/
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2013年1月8日,星期二,下午4:23
引用回复

该语句被执行了约150万次
I / O本身并不取决于查询,而是取决于<data/row> access pattern and <data/row> distribution

如果访问的数据是<uniformly>分布在整个数据库/表中
没有查询/缓冲优化可以摆脱I / O,
除非您使缓冲池能够容纳...
选择时间返回的行数1500000,
但是那你在其他地方会遇到问题
回到顶部
查看用户资料 发送私信
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2013年1月8日,星期二,9:13 pm
引用回复

如果x_amt不经常更新,则可能的解决方案是在索引中添加x_amt作为包含列。
您没有提到索引的聚类比率,也没有提到是否允许您操纵输入记录/变量的顺序。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2013年1月8日,星期二,9:36 pm
引用回复

您好,

表中有几行?过程必须“触摸”这些行中的多少行?

有时,从平面文件中卸载数据并进行处理要比一遍又一遍的查询或某些“怪兽查询”要好得多。您自己看来并不是一个“怪兽”,但处决次数肯定会增加成本。

如果您简要说明整个过程以及此特定查询对该过程的作用,则可能会帮助某人。可能还有其他选择。 。 。

编辑:没有看到Guy的帖子。 。 。 icon_redface.gif
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
没有新帖 在合并查询中需要帮助 DB2 4
没有新帖 REORG减少段大小新的DBD IMS数据库/ DC 2
没有新帖 需要选择所有记录属于... DB2 2
没有新帖 大型机ISPREDIT宏查询 TSO / ISPF 3
没有新帖 DFSORT输出文件顺序查询 DFSORT / ICETOOL 2
搜索我们的论坛:


回到顶部