关于db2 9.7分区表的性能问题

一个表约3000万条数据,我使用下面的方式按月自动生成分区

        PARTITION BY RANGE(payeetm)

        (

        STARTING MINVALUE,

   STARTing '2013-1-1' ending '2016-12-31' EVERY 1 MONTH,

        ending MAXVALUE

然后一个简单查询语句

       

select col1,col2,sum(col3),sum(col4) from  table1

WHERE PAYEETM BETWEEN '2014-1-1' AND '2014-2-1'

GROUP BY col1,col2

分别查一个月和两个月的数据,与未分区的对比,明显要慢,耗时几乎翻倍,这是什么原因,分区表的适用环境和不适用环境是什么?

参与9

3同行回答

新数科技新数科技IT顾问北京新数科技有限公司
这个执行的情况怎样,要看两个场景下的执行计划。像你给出的这个SQL语句,是完全有可能的,因为group by col1, col2这个条件,会按照col1和col2两列来排序,但是这两个列不是分区的列,所以排序的时候就有可能比分区表要慢(有索引的情况下)。如果只查一个月的话,感觉应该不会。...显示全部

这个执行的情况怎样,要看两个场景下的执行计划。

像你给出的这个SQL语句,是完全有可能的,因为group by col1, col2这个条件,会按照col1和col2两列来排序,但是这两个列不是分区的列,所以排序的时候就有可能比分区表要慢(有索引的情况下)。

如果只查一个月的话,感觉应该不会。

收起
IT咨询服务 · 2015-11-27
浏览1440
长老长老系统运维工程师先达
这是比较久之前遇到的问题了,按新数科技的说法,是不是就意味着如果我的查询条件没有使用分区键,其执行效率也会降低,那么分区表就只能针对比较特定的一些查询,像oltp这种业务就不大适合?...显示全部

这是比较久之前遇到的问题了,按新数科技的说法,是不是就意味着如果我的查询条件没有使用分区键,其执行效率也会降低,那么分区表就只能针对比较特定的一些查询,像oltp这种业务就不大适合?

收起
软件开发 · 2015-12-01
浏览1448
ricekingriceking系统工程师IBM
贴个执行计划出来看看呗。显示全部

贴个执行计划出来看看呗。

收起
互联网服务 · 2015-11-28
浏览1400

提问者

长老
系统运维工程师先达
擅长领域: 数据库存储关系型数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-11-27
  • 关注会员:5 人
  • 问题浏览:3235
  • 最近回答:2015-12-01
  • X社区推广