1、用户发送短信"A"到12329,发送记录会存储在sql server 2005 的记录表T 中
,这个存储不是你们的代码经手的?所以你完全没有办法控制?
2、频繁的访问数据库又担心会对sql server 数据库产生太大的压力。
你得有多频繁访问数据库啊,不要替微软担心这么多,还是想办法先试试吧。
问题1,是的,用户发送短信的过程我们无法控制,只给我提供了用户的发送记录表T,其他的没有。
问题2,因为无法监控用户的发送过程,只能监控这张表的insert操作。初步想的是每5秒钟扫描一次表,找出最新增加的记录,然后给用户做响应。
ps:以前没做过这样的应用,对这种数据库访问的方式还是心有余悸的,还望指导!
@jianglongwei: 我刚刚打开一个运行中的SQL SERVER服务器,
看了一分钟,产生了638条查询。大概有50多个连接。
再看了另外一台更差的服务器(比第一台早三年多买的,内存只有第一台的三分之一),一分钟内,产生了4400行查询语句,大概也是50多个连接。
“可惜sql server 触发器不能够像Oracle 那样执行Java代码”
可以执行C#代码
1、使用 SqlDependency
2、Sql Server 可以调用托管 dll 也可以调用非托管 dll。
可不可以通过sql server触发器,调用外部程序,通过这个外部程序返回用户信息。
http://blog.sina.com.cn/s/blog_59c41d0d0100esjn.html
一般这种请款是采用短信猫来收短信的方式,它自己的数据库很小的,5s扫描一次完全没问题。扫描到之后,将数据拿出去,代码处理,然后写到记录表。
1. 触发器里的代码, 用sql server配java………… c#脚本表示打酱油。
2. 强大的sqlDependency,可以监控表变化,只要开启service broker,区区几行c#就可以轻松搞定。
3. 你就是不用c#。。那你就不能再建个临时的表,没有复杂逻辑,用触发器往里insert。 另外的东东循环遍历这张表, 处理OK的就清理。 也没有几亿数据吧。。