频繁对数据库io对性能影响多大?

fengfeng2003 2004-08-01 11:17:51
现在做一个工程程序

程序的实现是这样的:
第一个模块:
数据取样模块:
每隔10秒中采集一次数据,放入数据库中。这样每天的数据量大概6×60×24=8640个点。
数据处理模块:
然后每一天零点对这些数据进行处理,其中包括对数据进行多次扫描处理,每一次扫描将不复合条件的数据删除。

在第一个模块里我采用了一个缓冲,为了避免频繁写入
但是在第二个模块里面的多次扫描,删除,是不是会对性能产生很大的影响啊,不知道大虾们有什么好的解决办法。
多谢
这里用的是SQL SERVER
...全文
1663 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengfeng2003 2004-08-03
  • 打赏
  • 举报
回复
to fullsail(远航)

问题是我删除记录的时候并不是放在一起删除的,而是有满足删除条件的就删除次条记录。
不知道这样会不会有问题。

如果不行,有什么别的好办法吗

多谢!
fullsail 2004-08-03
  • 打赏
  • 举报
回复
我可能理解错了你的意思。

我的观点是如果你要删除某些符合条件的记录,直接使用SQL可能会更加高效。
ghgk 2004-08-03
  • 打赏
  • 举报
回复
用mfc的CRecordSet的deltree方法来删除记录的效率会有问题,我认为主要在方法调用、对该不该删掉的逻辑判断的开销上。
fengfeng2003 2004-08-03
  • 打赏
  • 举报
回复
up
RookieStar 2004-08-02
  • 打赏
  • 举报
回复
MARK
wwweasy 2004-08-02
  • 打赏
  • 举报
回复
fengfeng2003 2004-08-02
  • 打赏
  • 举报
回复
up
tatbaby 2004-08-02
  • 打赏
  • 举报
回复
up
fullsail 2004-08-02
  • 打赏
  • 举报
回复
To fengfeng2003() :
你那样效率不会高,只是把I/0分散开了。在数据库中删除效率是非常非常非常非常非常非常非常高的。

因为,数据库一般只是修改一个记录标志位而已。对表的删除是同样的道理。如果你的记录小于20万,你一次解决了绝对没有致命的I/O缺陷。
fullsail 2004-08-02
  • 打赏
  • 举报
回复
多线程不会大规模提供I/O速度,即使时多路复用也不行。提高很有限。
lingjingqiu 2004-08-01
  • 打赏
  • 举报
回复
大约要有50%的性能影响
Dong 2004-08-01
  • 打赏
  • 举报
回复
你说说大概什么条件删除,要怎样删除啊,
不然一条Sql就删除了很多东西了,影响不会很大的
fengfeng2003 2004-08-01
  • 打赏
  • 举报
回复
up
changeme 2004-08-01
  • 打赏
  • 举报
回复
write >> read

antijpn 2004-08-01
  • 打赏
  • 举报
回复
IO模型如果完善的话,可以大幅提高性能,但是IO仍然是相当慢的,建议多线程,某些线程专用于IO操作
fengfeng2003 2004-08-01
  • 打赏
  • 举报
回复
我不是用的sql语句,我用的是mfc的CRecordSet类,直接用的它的delete方法
因为第二个模块处理的时候大概是这样一个过程:
从第一个记录开始,取前四个点,将满足条件的删去,(可能两点,也可能不删除)如果没有删除的点就后移一个点,如果删除两个点就后移两个点,重新构成四个点,进行判断,直到最后一个记录。而后重新回到第一条记录,重复次过程,知道这一次扫描中,没有可以删除的点为止。

反正我老是感觉有问题,算法反正就是这样的,我原原本本的按照算法做的,不知道有没有别的实现方法。

fullsail 2004-08-01
  • 打赏
  • 举报
回复
每隔10秒中采集一次数据,放入数据库中。这样每天的数据量大概6×60×24=8640个点。

这个量对于数据库来说儿科到极点了。你就放心的用吧。几乎影响为0。除非你读写的数据极大。

频繁对数据库io对性能影响多大?
很大,但看的频繁度。
chon81 2004-08-01
  • 打赏
  • 举报
回复
有些操作能让数据库去做的就让数据库去做.这样会减少一些IO操作
step_by_step 2004-08-01
  • 打赏
  • 举报
回复
第二个模块的删除条件是什么?
你的sql是怎么写的?
看看可不可以优化一下流程

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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