与数据库保持同步

时间:2008-09-30 15:07:58

标签: c# sql-server .net-3.5

我们开发的解决方案使用数据库(sqlserver 2005)来实现持久性,因此,所有更新的数据都会保存到数据库中,而不是发送到程序中。

我有一个前端(桌面),目前一直在轮询数据库,以便在某些关键数据上随时可能发生更新,而且我真的不喜欢数据库轮询和浪费的CPU周期,工作正在重做无用的工作

我们的经理似乎并不介意我们轮询数据库。数据量很小(少于100条记录),间隔很高(1分钟),但我是编码员。我做。是否有更好的方法来完成将数据保存在与数据库中的数据尽可能同步的任务上?该系统使用C#3.5开发。

6 个答案:

答案 0 :(得分:2)

首先想到的是一个触发器和一个消息队列。

答案 1 :(得分:2)

由于您使用的是SQL2005,因此可以使用SqlDependency通知更改。请注意,您可以使用System.Web.Caching.Cache轻松地使用它,尽管它的命名空间运行just fine in a WinForms app

答案 2 :(得分:1)

这对你的情况可能有点过分,但看看Microsoft Sync Framework

可能会很有意思

答案 3 :(得分:1)

SQL Notification Services将允许您根据许多协议对应用程序进行数据库回调。一种实现方法是让通知服务在可访问的网络共享上创建(或修改)文件,并让您的桌面应用程序使用FileSystemWatcher做出反应。

有关Notification Services的更多信息,请访问:http://technet.microsoft.com/en-us/library/aa226909(SQL.80).aspx

请注意,这可能是解决螺母类问题的大锤方法。

答案 4 :(得分:0)

答案 5 :(得分:0)

这可能也有点矫枉过正,但也许你可以实现某种缓存机制。也就是说,当数据写入数据库时​​,您可以同时缓存它,当您尝试从数据库中取回数据时,请先检查缓存。

相关问题