新年第一个问题,300分奉送! ( 积分: 300 )

  • 主题发起人 主题发起人 cqwty
  • 开始时间 开始时间
C

cqwty

Unregistered / Unconfirmed
GUEST, unregistred user!
我开发一个数据采集的控件,主要采集交换机,路由器这些设备的流量信息,因为在控件中用了多线程来进行数据采集,那么采集来的数据,用什么文件保存好呢?数据库?xml?还是普通的文本文件。主要是这些数据的量很大,进行统计的时候,数据库表的速度应该是最快的。如果用数据库,那么如何在多线程中创建数据库的表呢?就创建database desktop里面能创建的表,而且这个表的保存位置是不是可以确定的呢?谢谢高手支招。
 
如果光保存和线性访问的话,肯定是直接二进制最快.
 
可是还有一个问题就是数据量很大哦,这个问题相当麻烦了。可能要保存几万条数据。这么大的数据用xml文件或者二进制文件能行嘛?还有就是这些保存的数据还要提出来进行分析。
 
2进制肯定行.难道数据库最终就不是用2进制形式保存在硬盘里么?读数的时候还要经过几重转换才能由ado等东西读出来,相比bin慢太多了。

分析的话也要看实际,只要不是n多条件的筛选的话,肯定快.
或许用foxbase的数据库格式,也是很快的.
 
对啊,二进制文件安全
 
对于数据的安全不需要考虑,我已经考虑用数据库的方式来实现了,因为数据量太大,用其他的方式可能不方便,所以最终还是采用数据库的方式来处理。
顺便再问一个问题:
像flashget那种悬浮窗体(我的问题的核心不是悬浮窗体,嘿嘿)上轮流显示每个下载任务的下载进度,并用图的方式绘出来是怎么做的?大家可以谈谈实现的思想。谢谢。
 
我自己也顶,顶上去,不许沉下来。
 
二进制快,帮顶
 
像flashget那种悬浮窗体(我的问题的核心不是悬浮窗体,嘿嘿)上轮流显示每个下载任务的下载进度,并用图的方式绘出来是怎么做的?大家可以谈谈实现的思想。谢谢。
 
二进制又快又安全。
 
主要采集交换机,路由器这些设备的流量信息...........................
这个不是SNMP都提供的吗,只要得到设备的MIB库,它提供的信息都可以轮询到。你可以去下载一个OpManager玩玩,好像是用的MySQL数据库+Appach服务器。
可能要保存几万条数据................................
Motorola OMC告警信息每天有几百万条,都是存的二进制文件;Nokia NWG(WAP Gateway)每天1000多万条计费记录,存的还是ASCII文件。所以采用什么不是问题,只要处理得好,以现在的计算机速度,肯定没问题。
像flashget那种悬浮窗体(我的问题的核心不是悬浮窗体,嘿嘿)上轮流显示每个下载任务的下载进度,并用图的方式绘出来是怎么做的?.....................................
我用TeeChart实现过多个进度交替显示,不过不是悬浮窗体,实际上也就是为每个任务分配一个动态生成的TeeChart图,由于显示的内容比较简单,只有进度线和接收电平,所以还比较简单。
 
moolleychean:
关于显示就是我需要的核心问题了,我要做到的是当一个用户选中一个正在监控的设备,那就显示流量信息,用tchart图表示出来,并且是动态的,如果选择其他设备,马上切换显示对象的信息。
 
都没有人顶帖子了所,自己顶起来,新年帖子不能沉啊,一定不能沉!
 
如果设备不是很多的话,可以考虑为每个设备动态生成一个TChart,只有一个TChart可见,当用户选中一个正在监控的设备时将相应的TChart可见,其它的隐藏。
但是设备很多的话,我不知道内存、速度什么的会不会达不到你的要求。这个时候就只能使用一个TChart用于显示了,切换对象信息的时候,清除原有的所有数据,再Load数据库,将新的数据加到图表中去。对于一个使用非IE终端的用户来说,可以忍受没有提示的等待时间极限大约1秒钟。所以用这种方法应该可行。
还有一种可以兼顾显示时的速度的方法,为每个设备建立一个Buffer,在后台的线程里定时的将数据Load出来,在切换对象信息的时候,就可以直接从内存中读显示的数据了。
 
已经找到了解决方法了,也解决了,解决方法的主要思想就是模式设计里面的观察者模式(Observer pattern),把所有的采集设备的线程都当成subject(观察的对象),然后在主界面上切换即可,选中哪一个设备就显示哪一个设备的,不用一个设备一个chart。谢谢大家参与哦。
 
大家的分都给的差不多,不要有意见哈,嘿嘿
 
后退
顶部