互联网服务性能调优olap

SQL查询性能调优

应用场景:
由于业务的需求,每天按照分公司抽取事实表t的数据生成报表,抽取的逻辑精简之后如下:
select
*
from fact_table t
where t.date between '$date1' and '$date2'
and       (t.a = '$para'
         or t.b = '$para'
         or t.c = '$para'
         or t.d = '$para'
         or t.f = '$para')


fact_table一张表的数据大约1天1000万左右,T表a,b,c,d,f字段都是分公司字段,这些字段的取值都是36,创建什么样的索引比较好?
参与15

14同行回答

mdkiimdkii软件开发工程师bocn
可以试试 mdc , "organize by a,b,c,d,e,f"显示全部
可以试试 mdc , "organize by a,b,c,d,e,f"收起
银行 · 2014-01-16
浏览898
zhendazhenda数据库管理员昆仑银行
回复 12# wangyax    不能解决问题是什么意思啊,还是很慢么?修改后的sql贴一下。显示全部
回复 12# wangyax


   不能解决问题是什么意思啊,还是很慢么?修改后的sql贴一下。收起
软件开发 · 2014-01-09
浏览910
wangyaxwangyax软件开发工程师金融机构
回复 10# 风语     那个问题我之前已经阐述过了,我将a,b,c,d合并一个字段叫e,也不能解决问题。显示全部
回复 10# 风语


    那个问题我之前已经阐述过了,我将a,b,c,d合并一个字段叫e,也不能解决问题。收起
互联网服务 · 2014-01-09
浏览912
wangyaxwangyax软件开发工程师金融机构
回复 9# zhenda     用db2advis测试过了,建议里面没说要建索引,就是建议将表runstats一下。显示全部
回复 9# zhenda


    用db2advis测试过了,建议里面没说要建索引,就是建议将表runstats一下。收起
互联网服务 · 2014-01-09
浏览969
风语风语数据库开发工程师上海
当然不合适啊!索引建多了,特别是建立在重复项比较多的字段上,影响性能,分公司应该是一个字段,然后创建一个36的那个字段,进行partitioning key(主键)not logged initially,select * from t where t.date >='$date' and t.date...显示全部
当然不合适啊!索引建多了,特别是建立在重复项比较多的字段上,影响性能,分公司应该是一个字段,然后创建一个36的那个字段,进行partitioning key(主键)not logged initially,
select * from t where t.date >='$date' and t.date<='$date'
and 分公司 in('')收起
互联网服务 · 2014-01-09
浏览1079
zhendazhenda数据库管理员昆仑银行
如果表结构逻辑不能修改的话,可以通过db2advis推荐索引,这会比人为创建索引考虑更多的因素。显示全部
如果表结构逻辑不能修改的话,可以通过db2advis推荐索引,这会比人为创建索引考虑更多的因素。收起
软件开发 · 2014-01-09
浏览1073
wangyaxwangyax软件开发工程师金融机构
由于a,b,c,d字段取值基本都是36个,根据分工公司进行数据筛选的话,初步评估筛选因子接近5%。我分别创建4个索引,这样合适不?显示全部
由于a,b,c,d字段取值基本都是36个,根据分工公司进行数据筛选的话,初步评估筛选因子接近5%。

我分别创建4个索引,这样合适不?收起
互联网服务 · 2014-01-09
浏览1064
wangyaxwangyax软件开发工程师金融机构
回复 2# leo_wyn     a,b,c,d虽然是分公司字段,但是含义并不相同。而且数据可能是这样的,a='北京',b='上海',c='广东',d='云南',通过转置的方式可能会造成交易量的统计不太准确。显示全部
回复 2# leo_wyn


    a,b,c,d虽然是分公司字段,但是含义并不相同。而且数据可能是这样的,a='北京',b='上海',c='广东',d='云南',通过转置的方式可能会造成交易量的统计不太准确。收起
互联网服务 · 2014-01-08
浏览1059
wangyaxwangyax软件开发工程师金融机构
回复 4# syunka_tyo     这张表是按照日期进行表分区的,每个月一个分区。像我问题中的SQL,每个分公司都会查询一次,比较慢。显示全部
回复 4# syunka_tyo


    这张表是按照日期进行表分区的,每个月一个分区。像我问题中的SQL,每个分公司都会查询一次,比较慢。收起
互联网服务 · 2014-01-08
浏览1038
wangyaxwangyax软件开发工程师金融机构
各位专家,有好的建议和意见没有?显示全部
各位专家,有好的建议和意见没有?收起
互联网服务 · 2014-01-08
浏览1097

提问者

wangyax
软件开发工程师金融机构

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-01-07
  • 关注会员:1 人
  • 问题浏览:22064
  • 最近回答:2014-01-16
  • X社区推广