【发布时间】:2017-04-26 17:26:28
【问题描述】:
我尝试过规范化的表格设计。问题(也许)是我们正在生成大量数据,因此产生了很多行。目前,数据库的大小每天增加 0.25 GB。
主表是 Samples an Boxes。从 Samples 到 Boxes 是一对多的关系。 示例表:
ID | Timestamp | CamId
盒子表:
ID | SampleID | Volume | ...
我们每 5 秒分析 19 个样本,平均每个样本有 7 个框。即 19*7*12 = 每分钟 1596 个盒子,1596*60*24 = 2,298,240 行在 Boxes 表中,平均每天。
此设置可能会运行数月。此时 Boxes 表大约有 2500 万行。
问题是;有这么多数据,我应该担心数据库大小、表大小和表设计吗?
或者我应该有一张这样的桌子
ID | SampleID | CamId | Volume1 | Volume2 | ... | Volume9 | ...
【问题讨论】:
-
您对相关表有哪些索引?
-
@TT。我在 ID 列上有主键。在 Samples 上,我对 Timestamp 和 CamId 有一个独特的多列约束。在 Boxes 上,我对 SampleId 也有一个多列约束,并且未显示另一列外键列
-
了解如何使用索引设计数据库以加快查询速度。例如:SQL Server Index Design Guide.
-
那么您可能还想了解表分区,因为您将拥有大量的行数和表大小。例如:SQL Server Table Partitioning: Resources.
-
如果您使用的是企业版,我会选择分区(在SQL2016中,此限制已被删除,现在分区不仅限于企业版)
标签: sql-server database