定义一个表有240个字段,合理吗

[复制链接]
查看11 | 回复6 | 2006-8-1 15:06:14 | 显示全部楼层 |阅读模式
本人要开发个小系统,有240个传感器的数据要采集,需要每秒采集一次。
我觉得有两条途径,一是定义个有240个字段的表存放数据,这样每天7万多条数据。
还有一个办法是将240个点分成10组,每组24个采集点,这样每条记录24个字段,每秒10条记录,一天下来70多万条记录。
不知道这两种方法哪种更合理,或者还有更好的办法给指点指点吗?
另外每秒写10条记录,SQL Server吃得消吗?
望指教,谢谢
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
有什么不合理的?
需要的就是合理的嘛!
粗略计算一下:
240个字段,假设每个字段都是INT类型(8字节长)
一条记录就是240*8=1920字节
一天7万条数据,就是1920*70000=134400000字节=128MB
8天就是一个GB的数据量. 不知你要采集多久?
注意设关键字并建立索引,免得今后查询困难.
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
写入的时候效率会很低吗?查询会不会很慢啊?
望指教,谢谢
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
表太大不好.若可以拆成较小的一组表最好.
大(宽)表在插入与查询时都会比小(窄)表慢.
我以前有一个表大概有125个字段,(记录才几万条)查询与添加的耗时都比较长,后来改为几个小的表,添加与查询都快很多.特别是在更新的时候,不用将大表中的所有字段的内容都写入事务日志中,节省了不少时间.
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
我也碰到几百个字段的情况,写起来真的是很累,但是没有办法,有的业务对象就是有这么多的属性,硬要把它拆开也不是什么好的想法.
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
建议不要用这么多字段,插入慢,可以分开成如果干个表。
列的数据类型是什么?这个要考虑。
sqlserver 1秒写10条数据没问题,你可以用存储过程。
回复

使用道具 举报

千问 | 2006-8-1 15:06:14 | 显示全部楼层
最初由 yugiant 发布
[B]本人要开发个小系统,有240个传感器的数据要采集,需要每秒采集一次。
我觉得有两条途径,一是定义个有240个字段的表存放数据,这样每天7万多条数据。
还有一个办法是将240个点分成10组,每组24个采集点,这样每条记录24个字段,每秒10条记录,一天下来70多万条记录。
不知道这两种方法哪种更合理,或者还有更好的办法给指点指点吗?
另外每秒写10条记录,SQL Server吃得消吗?
望指教,谢谢 [/B]

240个字段 不能大于 8k
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行