首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是为所有值使用一个表,还是为每个值使用单独的表?

是为所有值使用一个表,还是为每个值使用单独的表?
EN

Stack Overflow用户
提问于 2011-04-21 22:54:29
回答 2查看 408关注 0票数 1

我们正在设计一个数据库(SQLServer 2005)来存储来自我们仪器的测量数据。每秒,每个仪器将返回5个不同的值(所有浮点数)-例如max、min、avg等。在设计数据库时,是将所有这些值存储在单个表中(每行包含一个时间戳、类型和值),还是将它们存储在单独的表中(即: avgtable、maxtable、mintable),每行包含一个时间戳和值?我们将存储多达100台仪器的数据,它们将一次运行数月,因此数据量将变得相当大。

其中一种设计是否提供了比另一种设计更好的性能?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-04-21 23:38:58

存储每个测量值可能不是一个好主意。大多数(不是所有)时间序列数据都是高度重复的,通常只记录具有开始时间和结束时间的测量变化,或者采用其他压缩和编码方法就足够了。

查看进程历史记录和复杂事件处理(CEP)系统,以了解正在使用的不同系统以及可用的技术。有许多工具和技术用于支持您的场景类型。OSISoft、StreamBase和Oracle CEP是一些可用的软件包。由于您是微软的客户,因此您可能还会对微软针对SQL Server的CEP产品感兴趣: StreamInsight。

票数 1
EN

Stack Overflow用户

发布于 2011-04-21 23:00:50

您最好使用all in 1表,否则您将不得不将这些表连接在一起来查看单个度量,并重复日期、时间和可能的其他字段,这也将导致更大的数据库。连接表是最昂贵的部分。还建议使用主键字段,例如bigint IDENTITY(1,1),这样您就可以通过ID引用记录,以便更快地进行搜索。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5745815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档