c# 实时报警记录怎么实现

数据库创建了个Alarm(记录报警的点),RealAlarm(实时报警),现在串口发送了一些数据过来,经过解析处理后是这种格式:"0100111100000000"(也就... 数据库创建了个Alarm(记录报警的点),RealAlarm(实时报警),现在串口发送了一些数据过来,经过解析处理后是这种格式:"0100 1111 0000 0000"(也就是二进制),这16个长度的值分别对应Alarm表的2.0,2.1,2.2......2.15

以上是背景,重点来了:例如,当我收到数据"0100 1111 0000 0000",他的第二位是1,则2.1这条报警记录添加到RealAlarm。

就是这个意思,如果当为0,而且数据库之前是为1了,则从RealAlarm中删除此条为1的。

以上只是举例一条,实际有1000多条的报警。所以想请教大家提供一个方法,怎么效率而且避免大量访问数据库,以免数据库过于负载
展开
 我来答
syht2000
高粉答主

2016-11-09 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.5亿
展开全部
启动后先读取realalarm,把报警类型的ID以及记录的自增长编号存到比如directory里(当然用内存数据库也行),然后按收解析数据时先从字典里找,如果有的那就直接按自增长号删数据库,同时去掉字典的值,如果没有那就插入数据库,同时取回插入的ID加入字典。
除非你的并发极高,比如一秒几千到几万条数据,否则没看出哪里需要特别注意数据库负载的,如果真有那种情况,在其它的地方也要优化了。
更多追问追答
追问
经过调试,我发现如果有一条报警,则添加一条报警,调试是这样,没有错,但是添加这条报警会非常长的时间,我走到数据库打开这条表的记录,如下图

root_u
2016-11-09 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:84.3万
展开全部
这样子的 上队列啊 排队
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式