我有一个大型的Users表,其中包含50多个在我的应用程序的每个页面上使用的列。 E.g。
我的想法是,当用户首次登录时,我会将整个模型缓存到内存中,并在整个网站中为该用户使用该模型。在每次页面加载时,我将检查数据库记录,以查看自上次缓存以来该行的ModifiedDate是否已更改,如果是,则对所有列执行另一次调用并再次缓存它们。
基本上,我仍然需要在每个页面上调用数据库以检查ModifiedDate是否已更改,如果有则进行第二次调用。记录变更的可能性非常小。
另一个想法是在SP中使用动态SQL来检索所有字段(如果ModifiedDate已更改),那么在任一实例中每个请求只能进行1次调用。
这比仅在每个请求上获取所有列更好吗?或者有更好的方法来管理这个吗?
答案 0 :(得分:0)
除非您有宽列,否则您也可以取回整行,而不是进行检查。数据库仍然需要访问行或索引,数据库缓存机制应该将其保留在内存中。
可以做的一件事是防止挂起应用程序是使用超时或异步读取。即使在更改之后,这也允许页面继续使用“旧”数据加载。下一页加载会看到更改。