我正在开发一个具有自动刷新功能的 .NET 应用程序。我数据库中的每个表都有一个 MODIFIED_DATE 列,该列在每次更新或插入后都会更新。目前,自动刷新功能仅适用于一张表,但将来可能会发生变化。我目前正在考虑以下可能的解决方案:
客户端应用程序在计时器上运行查询,例如每 10 秒返回一次 MODIFIED_DATE 大于存储在我的应用程序中的上次修改日期的所有行。
在监听 firebird 事件的每台客户端计算机上保持专用的开放连接,然后在触发事件后运行查询。每次使用 POST_EVENT 命令更新/插入后,该事件显然会由数据库触发。
开发一项服务,该服务将驻留在服务器上监听 firebird 数据库事件,然后使用 .NET 远程处理通知客户端应用程序。
谁能告诉我以上哪种解决方案在性能和可扩展性方面更好?
我希望解决方案对数据库工作负载的影响尽可能小。
最佳答案
实际上,Firebird 的一个不错的功能是能够编写用户定义的函数 (UDF),您可以直接从触发器调用 UDF,而 UDF 可以反过来通知您的应用程序(使用标准进程间通信)有更新发生后,这就变成了通知模型而不是轮询模型,并且更具可扩展性。
警告:UDF 需要是原生 dll(我相信)C++ 或 Delphi,Delphi 中很可能有相当多的示例代码。
关于c# - 使用 firebird RDBMS 在 .NET 应用程序中自动刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445394/