首页 新闻 搜索 专区 学院

如何监控sql server 2005 表的操作

0
悬赏园豆:10 [已解决问题] 解决于 2015-01-11 13:26

过程描述:

    ​用户发送短信"A"到12329,发送记录会存储在sql server 2005 的记录表T 中,我们需要做的就是根据用户发送的代码“A”给用户返回相应的信息。如图:

考虑过使用触发器,可惜sql server 触发器不能够像Oracle 那样执行Java代码;

考虑使用程序不间断地扫描表,频繁的访问数据库又担心会对sql server 数据库产生太大的压力

各位,有没有什么好的解决办法?

jianglongwei的主页 jianglongwei | 初学一级 | 园豆:178
提问于:2015-01-07 10:48
< >
分享
最佳答案
0

1、用户发送短信"A"到12329,发送记录会存储在sql server 2005 的记录表T 中

,这个存储不是你们的代码经手的?所以你完全没有办法控制?

 

2、频繁的访问数据库又担心会对sql server 数据库产生太大的压力。

你得有多频繁访问数据库啊,不要替微软担心这么多,还是想办法先试试吧。

收获园豆:10
爱编程的大叔 | 高人七级 |园豆:30664 | 2015-01-07 10:52

问题1,是的,用户发送短信的过程我们无法控制,只给我提供了用户的发送记录表T,其他的没有。

问题2,因为无法监控用户的发送过程,只能监控这张表的insert操作。初步想的是每5秒钟扫描一次表,找出最新增加的记录,然后给用户做响应。

ps:以前没做过这样的应用,对这种数据库访问的方式还是心有余悸的,还望指导!

jianglongwei | 园豆:178 (初学一级) | 2015-01-07 11:11

@jianglongwei: 我刚刚打开一个运行中的SQL SERVER服务器,

看了一分钟,产生了638条查询。大概有50多个连接。

 

再看了另外一台更差的服务器(比第一台早三年多买的,内存只有第一台的三分之一),一分钟内,产生了4400行查询语句,大概也是50多个连接。

爱编程的大叔 | 园豆:30664 (高人七级) | 2015-01-07 11:29
其他回答(5)
0

“可惜sql server 触发器不能够像Oracle 那样执行Java代码”

可以执行C#代码

dudu | 园豆:38851 (高人七级) | 2015-01-07 10:49
0

1、使用 SqlDependency

2、Sql Server 可以调用托管 dll 也可以调用非托管 dll。

Launcher | 园豆:45045 (高人七级) | 2015-01-07 10:51
0

可不可以通过sql server触发器,调用外部程序,通过这个外部程序返回用户信息。

http://blog.sina.com.cn/s/blog_59c41d0d0100esjn.html

FreeSaber | 园豆:85 (初学一级) | 2015-01-07 11:11
0

一般这种请款是采用短信猫来收短信的方式,它自己的数据库很小的,5s扫描一次完全没问题。扫描到之后,将数据拿出去,代码处理,然后写到记录表。

幻天芒 | 园豆:36594 (高人七级) | 2015-01-07 11:25
0

1. 触发器里的代码, 用sql server配java…………  c#脚本表示打酱油。 

2. 强大的sqlDependency,可以监控表变化,只要开启service broker,区区几行c#就可以轻松搞定。

3. 你就是不用c#。。那你就不能再建个临时的表,没有复杂逻辑,用触发器往里insert。 另外的东东循环遍历这张表, 处理OK的就清理。 也没有几亿数据吧。。

问天何必 | 园豆:3301 (老鸟四级) | 2015-01-07 16:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册