none
数据量较多,数据库如何规划? RRS feed

  • 问题

  • 数据量较大的情况下,数据库该如何来规划?

    目前采用的方式是每年新建一个数据库。


    从你泪水注满的同一眼井中,你的欢乐泉涌
    2010年11月16日 5:33

答案

  • File size will not afect performance, and you can put table on separate file group if you want. With multiple dbs, you still be able to work on other dbs in case one of the db goes down but have to maintain permissions and so in each db. Easier to manage single db.
    2010年11月18日 14:30

全部回复

  • 数据较大?

    多大?

    上G,还是上T?每年?

    办法很多,比如你说的每年建立一个。

    但是历史数据查询就比较麻烦了,你需要一个完善的解决方案,能够自动化处理整个过程。

    比较好的办法是,不断把数据迁移出去,当前活动数据库只保留最近1年或者几个月的数据,历史数据被迁移出去之前可以按照预期的报表出一些报表快照,历史数据可以备份到磁带后者其他你的存储柜上,需要的时候再去加载回来。

     


    family as water
    2010年11月16日 5:47
  • 感谢回复!

    具体多少目前还无法确定,估计每年10G左右这个量级。

    另外建立多个文件组是不是也可以提高性能?


    从你泪水注满的同一眼井中,你的欢乐泉涌
    2010年11月16日 7:27
  • 10 G 很小了。可以考虑在时间字段上使用 Partitioning,性能提高是非常明显地。
    2010年11月16日 13:01
    版主
  • 感谢回复!

    具体多少目前还无法确定,估计每年10G左右这个量级。

    另外建立多个文件组是不是也可以提高性能?


    从你泪水注满的同一眼井中,你的欢乐泉涌
    Is it for each table or whole db? If whole db is 10gb in a year, that's small nowadays. Keep in mind that single table can't cross file groups unless you partition it. Creating multiple filegroups doesn't mean get better performance, it depends on many factors.
    2010年11月16日 14:15
  • 您指的是表分区吗?

    该特征只有企业版才支持吧!


    从你泪水注满的同一眼井中,你的欢乐泉涌
    2010年11月17日 0:44
  • Not necessary to partition 10gb table.
    2010年11月17日 1:29
  • 每年10G的确没什么需要分区,若真要考虑长远,比如五年、十年,设计好分区架构也是好事

    但问题是三五年后变成什么样,谁知道呢?

    先按单表实现即可,毕竟每年10G在短期内三五年间不是什么问题


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2010年11月17日 2:16
  • 个人觉得, 需要先确定怎么用这些数据, 如果你的数据经常用的是最近一年, 那么分库没有什么不好的
    2010年11月17日 4:36
  • 方法很多 如果说要规划,心里就要很清楚,我的数据半年到什么样的数据级别,一年..? 首先考虑多文件组,多文件。。甚至大对象专门一个组。还要考虑的你的硬盘的存储策略 其次也有人提到了partition, 大表应该partition(非企业版不行) 再次,archive, 这个要跟应用协调 最后,就我而言会分schema... 应该还有的很多,先写这些。。。
    Derek
    2010年11月17日 6:49
  • 现在数据来源主要是实时监测的生产数据,有的监测点变化频繁,估计单表的记录会比较大,至少千万条以上,有的监测点不怎么变化,单表记录不会太多。

    对于表分区,由于依赖于企业版数据库,因此不是一个通用的做法,不是每个用户都会购买企业版的数据库。

    对于文件组,我还没搞清楚如何设计,可以提高效率

    对于业务上来说,通常情况一般只会浏览最近1~2年的数据,历史数据主要是导入到数据仓库中作数据分析和挖掘使用。

    上面有人提议将历史数据迁移出去,我觉得比较麻烦,似乎也没这个必要。


    从你泪水注满的同一眼井中,你的欢乐泉涌
    2010年11月18日 1:19
  • 每年10G的数据,不多的,每年建一个库也没这个必要。

    最大表也就千万,也不算大。

    你可以按年分表。每年建一个表。

    历史表导入数据仓库后可以删除,或者看你存储空间的大小做一定时间的保留。这样可能比较简单。

     


    family as water
    2010年11月18日 2:29
  • 按年建表与按年建库相比有什么好处?数据文件的大小会影响系统效率吗?


    从你泪水注满的同一眼井中,你的欢乐泉涌
    2010年11月18日 6:03
  • File size will not afect performance, and you can put table on separate file group if you want. With multiple dbs, you still be able to work on other dbs in case one of the db goes down but have to maintain permissions and so in each db. Easier to manage single db.
    2010年11月18日 14:30