我有一消息发送程序,第一次执行该程序时,判断发送缓冲表是否为空,如果为空,则自动将后台(SQL数据库)信箱表中未读消息提出,放置发送缓冲表中;如果发送缓冲表不为空,则在规定的扫描时间内,自动扫描信箱表和发送缓冲表,如果信箱表中有新的未读消息则将其插入发送缓冲表中,若信箱表中的消息已读,而发送缓冲表中有该条消息,则将发送缓冲表中的该消息清除.
现在的问题是自动扫描信箱表和发送缓冲表的算法,我的想法是:保持一个较高的扫描速度前提下(四五千条记录,1秒-2秒完成),如何组织一个高效率的算法将信箱表和缓冲表关联起来,按照上面的说明对发送缓冲池进行插入和删除操作?
我用记录集实现速度很慢!
现在的问题是自动扫描信箱表和发送缓冲表的算法,我的想法是:保持一个较高的扫描速度前提下(四五千条记录,1秒-2秒完成),如何组织一个高效率的算法将信箱表和缓冲表关联起来,按照上面的说明对发送缓冲池进行插入和删除操作?
我用记录集实现速度很慢!
我通过ado的find属性在发送缓冲表的记录集中查找是否有信箱表中的消息存在,速度慢!
(四五千条记录,1秒-2秒完成)应该没问题但删除操作为什么要用扫描完成呢?
我得意思是结构不合理
删除操作不应该在扫描部分完成
应该由发送部分完成
根据你的实际情况考虑咯
把数据全部读入数组中
EX:
Private Type UserType
flagDelete as Boolean '标志位作为一个有没删除
..........
end Type
dim arryCache() as UserType
dim arryDataBase() as UserType
在UserType中加入标志位