目前要开发的系统是针对商品销售统计, 每天每个业务员上报门店的商品销量情况,门店量很大(全国各地) 大致每天在几万条数据录入量。  主要针对录入的信息做成商品销量统计, 门店的销量统计。 时间长了表里的数据会很庞大。请问如何对这些信息进行优化。 我之前也问过一些网上高手,不过他们都很忙, 说要做成数据仓库。我在网上也找到一些相关信息资料,我的理解大致意思是把每天录入的信息存在一个专门做数据查询表里面(该表只负责查询)。 录入表只存本周或本月的销量记录。需要做一个半夜跑的程序向数据总表里面添加信息。 不知道这个想法对不对。 但是我感觉如果只存在一个表的话量还是会非常大,查询起来还是会很麻烦。 请数据库高手们帮忙看看,讲解一下建设表的细节和注意的地方。 小弟不胜感激。

解决方案 »

  1.   

    另外,这么大的量,为啥不用oracle
      

  2.   

    因为sql server也能处理亿万条数据
      

  3.   

    谢谢楼上各位,
    1。 目前技术只允许时用MSSQL。
    2。 陈旧的数据不能完全删除 只少重点品类的商品不可以。 要进行同比,和环比。
    谢谢建议表分区。我先去查阅一下资料
      

  4.   

    1、数据入库使用SqlBulkCopy入库,这个数据量很小,几万条记录的数据入库一般不超过10秒。
    2、如果使用SQLServer的企业版,可以使用分区表(按照天维度分区,主要根据你的业务应用来确定)。
    3、如果非企业版,直接使用多张表即可(按月存储)。
    4、你的数据量一天才几万条,不用建立数据仓库。关键在于索引和分区表的创建。
    5、如果表的字段数目比较多,或者固定的关联查询多,可以使用分索引视图。
    6、SQLServer单表的字段数目不要超过255个(同时单条记录控制在4K以内为宜)。
    7、SQLServer单表的记录数目不要超过200万。建立分区表则可以大幅度提升至少到2000万。
    8、定时汇总日、周、月和常用的统计维度(门店、区域)的报表数据,查询时直接可以查询汇总结果(这个工作其实就是基本的数据仓库的原型)。空间换时间。
    9、硬件投资是否有要求,如果是台式机,多个硬盘,把日志文件单独一个硬盘。如果是服务器,磁盘阵列的设置很重要(各厂家的参数有差异,建议使用两套Raid5,Raid10的速度慢很多,不过Raid5的安全性会降低,对于这么重要的数据,建议建立两套服务器,至少两套存储)。磁盘阵列的Cache很重要,特别是Raid5,Cache尽可能配置在2G,如果是内置的存储则至少512M,推荐服务器HP580G6。
    10、建立数据字典,所有的查询需要通过界面定制,否则后续的维护工作量会比较大。核心点:
    分区表、索引(聚集索引)、索引视图、bulkcopy、磁盘阵列、定时汇总(空间换时间)
      

  5.   

    lixi927 。 非常感谢, 提供资料非常重要。 虽然还要一定时间消化。但是已经基本理解技术框架。