我的一个新客户有一个 2002 年编写的小型 VB/Access 数据库应用程序,他希望对其进行重写以使其更新并支持他一直想要的新功能。因此,我将把它转换为在本地计算机上使用 C#.NET 2008 和 SQL Server Express 2008,并能够扩展到在远程服务器上使用 WCF 和 SQL Server 2008。
他感兴趣的新功能之一是维护和报告一段时间内数据更改的完整历史记录。过去,我通过使用触发器和存储过程来做到这一点,这对@!#$ 来说很痛苦。
我最近很想弄乱 SQL Server 2008 的变更数据捕获功能。在我最初使用它的一个小时内,我意识到它在 SQL 代理中创建了一个默认情况下每 5 秒运行一次的作业。当我需要更改捕获表的架构时,这似乎也有点痛苦。除此之外,它似乎比我原来的方法更容易实现。所以,这些是我的问题:
- 对于最终可能会或可能不会迁移到远程服务器的小型桌面应用程序来说,这是否有点矫枉过正?
- 在性能方面我应该期待什么?随着他的数据库大小增加,我是否会接到更多来自他的电话,说他的计算机运行缓慢?
- 我应该从目前在生产中使用它的任何人那里了解 CDC 的任何其他问题吗?
- 有没有人有任何链接指向他们最喜欢的随时间跟踪变化的方式,这可能更适合小型桌面应用程序?
谢谢,
马克