2

我有一个 excel 2010。在 VBA 代码中,一个过程从 SQPEXPR 2008 获取数据。
重复调用,并且多次获取相同/过滤数据(这已经存在于 excel 文档中)。

它是应用缓存(用于提高性能)的一个很好的用例。

可能吗?是怎么回事?

SQL Native Client 用于连接数据库。

4

1 回答 1

0

当您更新要缓存的基础数据时,还要存储更新日期。这可以手动或通过触发器完成。

当您在 Excel 中对主要数据执行查询时,还要在 Excel 电子表格中查询并存储上次更新的日期。

最后,当您从 Excel 执行数据刷新操作时,首先查询当前的最后更新日期是否与存储的最后更新日期相同。如果是这样,则无需刷新数据。

如果您的数据具有固有的“最后更新”日期,并且有任何类型的索引将此值作为其中的第一列,那么您已经将“最后更新日期”存储得很好 - 只需一次查找阅读最近的更新日期,您可以从中得出相同的优化。

SELECT TOP 1 DateChanged FROM dbo.YourTable ORDER BY DateChanged DESC;

假设我在 上谈论的那个索引DateChanged,你有你的“表最后更新”日期。当然,还假设表上的每个操作都会在插入或更新时忠实地更新此日期,并且永远不会删除行,只是标记为不活动(否则您将不知道删除行)。

无论哪种方式 - 显式保存单独的最后更新日期或隐式使用列,您现在都可以缓存数据。

它可能会帮助您考虑浏览器和 Web 服务器如何执行此任务,这与我所概述的几乎完全相同:被请求的文件具有修改日期,并且此数据首先与客户端浏览器交换。只有当文件的日期比浏览器的缓存副本更新时,浏览器才会请求实际的文件内容。

于 2013-02-01T06:07:38.603 回答