在VBA(Excel 2010)中缓存以连接到SQL Server 2008 Express

在VBA(Excel 2010)中缓存以连接到SQL Server 2008 Express,sql,sql-server-2008,caching,sql-server-express,Sql,Sql Server 2008,Caching,Sql Server Express,我有一个excel 2010。在VBA代码中,一个过程从SQPEXPR 2008获取数据。 重复调用,多次提取相同/筛选数据(已存在于excel文档中) 这是一个很好的应用缓存(提高性能)的用例 可能吗?是的,怎么办 SQL本机客户端用于连接到数据库 更新要缓存的基础数据时,也要存储更新的日期。这可以手动完成,也可以通过触发器完成 在Excel中查询主要数据时,还要在Excel电子表格中查询并存储上次更新的日期 最后,在Excel中执行数据刷新操作时,首先查询当前上次更新日期是否与存储的上次更新

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

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

可能吗?是的,怎么办


SQL本机客户端用于连接到数据库

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

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

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

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

SELECT TOP 1 DateChanged FROM dbo.YourTable ORDER BY DateChanged DESC;
假设我在
DateChanged
上谈论的索引,您已经得到了“表上次更新”的日期。当然,还假设表上的每个操作在插入或更新时都会忠实地更新这个日期,并且行永远不会被删除,只是标记为不活动(否则您将不知道删除行)

不管是哪种方式——显式保存一个单独的上次更新日期,还是隐式使用列,现在都有了缓存数据的方法


它可以帮助您思考浏览器和web服务器是如何执行此任务的,这与我概述的内容非常相似:请求的文件有一个修改的日期,这些数据首先与客户端浏览器交换。只有当文件的日期比浏览器缓存的副本的日期更新时,浏览器才会请求实际的文件内容。

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

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

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

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

SELECT TOP 1 DateChanged FROM dbo.YourTable ORDER BY DateChanged DESC;
假设我在
DateChanged
上谈论的索引,您已经得到了“表上次更新”的日期。当然,还假设表上的每个操作在插入或更新时都会忠实地更新这个日期,并且行永远不会被删除,只是标记为不活动(否则您将不知道删除行)

不管是哪种方式——显式保存一个单独的上次更新日期,还是隐式使用列,现在都有了缓存数据的方法

它可以帮助您思考浏览器和web服务器是如何执行此任务的,这与我概述的内容非常相似:请求的文件有一个修改的日期,这些数据首先与客户端浏览器交换。只有当文件的日期比浏览器缓存的副本的日期更新时,浏览器才会请求实际的文件内容