困扰比较久的问题:这种情况数据库结构该始何设计

hbqc_zh 2006-08-03 09:49:22
问题:
公司开发一套实时监控系统,是下位机的硬件设备采集数据向上位机(监控系统)上报,每天的数据量相当庞大,几秒钟上报一次,每天可能有几万条记录,甚至十万条记录,在设计实时告警记录表时出现问题:
1、目前设计的是每天动态生成一个记录表,采集入库、执行效率都没问题,但是报表查询时非常慢。
2、如果放在同一表中,估计会造成单个表数据量太大出现问题,同样查询的效率也不会很高。
3、如果设计成一月存一个表,或者一季度(或其它)存一张表,目前没有试验,不知结果会怎样?
4、SQL中单表存储数据最大容量是多少?
这个问题很麻烦,不知道各位有何高见?谢谢!
...全文
275 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
TR@SOE 2006-08-09
  • 打赏
  • 举报
回复
同意PPower的建议。补充几句。

一、建议做一个“缓存表”,专门供客户端存放数据。这个表不需要建立任何索引,可以稍微提高一下存的速度。
二、多做几个服务器端的数据采集程序,每个程序每秒中从缓存表中读取数据并插入到相应的“永久”表中。
三、建立专门用来查询的表,在步骤二中同步更新。有些冗余表是允许的。
四、建议每个月进行类似“关帐”的处理。

供参考。
勉励前行 2006-08-09
  • 打赏
  • 举报
回复
考慮一下數據粒度的問題,
為了你的查詢快,應該另外建立一個表,專門為統計服務的,其數據粒度較大,數據量就少了。這個表可考慮用觸發器更新也可每日定時更新(只更新新增數據即可)。

用於保存原始數據的表,即事實數據庫可以考慮存放於另一個庫中,依據數據量每月或每年存放為一個庫(或表)。這樣查詢與記錄原始數據可以和諧相處。

無論什麼數據庫,在32位系統下,單表容量雖然說不限制,但最好不要上千萬,限制不要超過4G。否則,速度會有問題。

windindance 2006-08-08
  • 打赏
  • 举报
回复
>>ACCESS 的就可存放上亿条记录
#_#
你敢这样用?
freedoman 2006-08-08
  • 打赏
  • 举报
回复
呵呵@写一个储存呀,下一次执行的话就可以直接从高速缓存里执行代码了.而再不必从硬盘->内存
->高速缓存->cpu 通过这样的路径去执行了.这样话就会提高效率,不知我的这个想法合不合理,你可以考虑一下.
wanglovec 2006-08-07
  • 打赏
  • 举报
回复
1、目前设计的是每天动态生成一个记录表,采集入库、执行效率都没问题,但是报表查询时非常慢

优化一下 ADO

>>SQL中单表存储数据最大容量是多少?
数据容量不限

ACCESS 的就可存放上亿条记录
zwh202342 2006-08-03
  • 打赏
  • 举报
回复
每天一个表好一些
13661023811 2006-08-03
  • 打赏
  • 举报
回复
根据日期,一天一个表,我就是这么做的。

或者每天生产一个临时表,最后入库,呵呵,跟股票软件似的。
「已注销」 2006-08-03
  • 打赏
  • 举报
回复
分区
windindance 2006-08-03
  • 打赏
  • 举报
回复
>>SQL中单表存储数据最大容量是多少?
数据容量不限
但根据我的经验,超过100万性能就很差。
windindance 2006-08-03
  • 打赏
  • 举报
回复
每天一个表好一些。
报表查询很慢,查询什么的时候比较慢?一般查询什么条件?对这些条件做个优化,例如可以每月做一张统计表。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧