通知客户的表记录更改

问题描述:

我有一个项目,不使用任何ORM。这是一个Webforms项目,大多数业务逻辑驻留在数据库端的stored procedures通知客户的表记录更改

这里的工作流程是如何工作的:
用户进入页面 - >
选择必要的参数 - >
检索来自存储过程中的数据集。 - >
然后,我们将该数据集存储在ViewState中以加快访问速度,这意味着在另一个用户编辑它们后记录可能会变陈旧。如果我们不将这些记录存储在Viewstate中,那么应用程序的使用变得非常慢。

问题: 什么是自动更新记录状态的最佳方法,什么是正确的缓存方法?如何查看记录是否最新?你认为SignalR可以帮助吗?

+0

您要查询多少数据?缓存可能是必要的,但也可能只是需要更新查询和索引。 – 2013-04-09 17:04:53

+0

@MichaelPerrenoud,我们有几个dbas,他们在索引和查询的数据库端工作,从表和连接的直接选择非常快,这只是我们的计算和连接的复杂程度。 – user194076 2013-04-09 17:25:56

无论您使用哪种缓存模型或什么库,如果您的数据填充缓慢,在尝试验证缓存的数据集的状态时仍会经历显着的延迟。您可以使用SignalR来管理与服务器的连接,但这仍然意味着您的用户可能正在使用过时的DataSet,并确定缓存数据的“当前性”并产生所有后果。

我与@MichaelPerrenoud,并会密切关注返回DataSet的存储过程的执行计划。比较应用程序和查询窗口中运行该过程的执行时间 - 这可能是一个参数嗅探问题,导致使用低效的执行计划。