关系数据库设计模式问题 - 大规模只读数据库

时间:2009-05-11 19:34:25

标签: sql-server

我有一个有趣的挑战,即构建一个从大约500个不同来源导入数据的数据库。

每个源都有自己的架构,很多都非常不同。但是,它们都是关于共同实体的数据。

我的第一个想法是典型的实体/属性/值模式,但是在将非规范化导入从一个源(550k行)转换为AEV之后,我最终在Attribute_Value表中有3600万行。使用适当的索引,这仍然非常快,但到目前为止,这只是500个导入源中的一个。

我认为这不会扩展,但它确实可以实现非常好的逻辑分区,我们不需要跨导入源加入,因此我们可以构建(理论上)50个左右的单独数据库。

我正在寻找那些使用大量数据源的人,以及他们在行数达到数亿时如何处理事情的经验。

2 个答案:

答案 0 :(得分:2)

您是否考虑过OLAP解决方案?它们可能是为像你这样的情况而设计的。要读取和分析的大量数据。

答案 1 :(得分:2)

我有十亿个+行表,行数不像碎片级别和表格本身的宽度那么重要,表格越宽,页面就越少,

在OLAP / SSAS旁边 您是否看过使用分区函数(sql server 2005中的新增功能)

您还可以利用页面和行级压缩(sql server 2008中的新增功能)这将有助于您将更多数据存储到RAM中,我使用压缩进行了自己的测试,查看此链接以查看它与no相比如何压缩A Quick Look At Compression In SQL 2008