• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

数据分割-一个易被忽略的查询优化手段

发布: 2007-7-04 17:55 | 作者: admin | 来源:  网友评论 | 查看: 9次 | 进入软件测试论坛讨论

领测软件测试网

在数据仓库项目中,由于数据规模庞大,提高数据的查询效率是永恒的主题,常见的优化手段有:

1、 硬件优化:提高机器性能,增加硬件等;

2、 优化查询语句,将限定性强的where条件放前,用exists代替in操作等;

3、 优化索引,建立有效的索引并检查和修复缺少的统计信息等;

4、 数据库系统文件优化,将数据文件、索引文件、日志文件放置在不同的磁盘上,提高并行度等

除了以上方法外,还有一种很重要但易被大家忽略的方法:大表数据分割。当一个表的数据规模达到数亿条时,索引已基本发挥不了作用:建立索引要花费大量时间,查询时由于要扫描大的索引表也要花费大量时间。为了发挥索引的作用,可以将大表按照某个字段拆分为若干个小表。

例如,国内某大型保险公司,其有36家分公司,一年的保单明细表(f_policy)大概有2亿条记录,两年的数据超过4亿条,如果在f_policy上作一次查询,响应非常慢,可以考虑将f_policy按照机构拆分为36个同构的小表,在作整个保单明细表的查询时,可以使用union all操作合并数据,或者建立一个union all的视图,查询效率大大提高。并且,作这样的拆分非常有用,因为经常会有只查询某个分公司数据的需求。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网