gpt4 book ai didi

wcf - 在 SQL CE 数据库中缓存数据

转载 作者:行者123 更新时间:2023-12-02 02:36:13 27 4
gpt4 key购买 nike

背景

我有一个不断更新(每秒)的 SQL CE 数据库。

我有一个(网络)应用程序,允许用户实时查看数据。在某些时候,用户可以单击“拍摄快照”按钮,它会在不同的窗口中打开快照。

然后在该表单上,有“打印”和“下载”按钮,它们将生成用于打印的页面,或者将数据流式传输为 CSV 文件 - 但必须使用相同的数据快照,即我无法去数据库获取最新数据。

详细信息

  • SQL CE 数据库通过 WCF 网络服务公开。
  • 快照最多包含 500 条记录,每条记录 10 列。 2 小时快照的过期时间就足够了。
  • 这是一个低流量应用程序,因此我预计不会同时有超过几 (5) 个连接。
  • 丢失快照没什么大不了的,用户可以简单地生成一个新快照。
  • 数据库由使用 Linq-to-SQL 的自托管 WCF 网络服务访问。
  • 网站是在 UltiDev Cassini 上托管的 ASP.NET MVC。
  • 数据库和网站在部署时很可能在同一个盒子上。整个应用程序是内联网绑定(bind)的。

问题我需要在用户按下“拍摄快照”按钮时缓存数据快照,以便我可以使用相同的数据生成打印页面,或生成文件以供下载。

解决方案一:

每次需要生成快照的时候,我都会在数据库中创建一张表。由于 SQL CE 中没有临时表,我需要自己清理它。

解决方案 2:

将快照缓存在数据库服务器或网络服务器的内存中。

问题:

提出的解决方案有什么问题吗?有什么不同的解决方案建议吗?

最佳答案

一个考虑因素是典型的使用模式。大多数快照最终会导致打印或导出还是两者兼而有之?

如果是这样的话,我们不妨以从设备到服务器的非阻塞(异步)select 语句的形式(暂时)“获取到内存中”。以这种方式,当用户决定使用数据时,数据将“存在”或顺利进行。

另一方面,如果许多快照最终没有得到有效使用,解决方案 #1 似乎还不错(也许该表可以以帐户/用户命名,从而保证基于快照数量的“ self 清理”a用户可以在给定的时间维护(虽然它似乎只是一个,有时甚至可以容忍失去它)。

关于wcf - 在 SQL CE 数据库中缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com