如何:仅在更新时从数据库中检索值

时间:2009-08-19 20:41:45

标签: sql-server logic

我有一个场景,我想在网页上显示一堆数据。

数据通过某些进程(我无法控制)仅在早上7点(上午7点)或手动启动进程时填充到数据库中。 (P.S同样的数据也在网页的其他地方以不同的形式使用,但来自不同的渠道。)

我想在页面上加入一些逻辑

  1. 将数据检索到xml文件并从xml文件中读取数据(以避免访问数据库)
  2. 仅在上午7:10凌晨检索数据。但如果有人手动启动过程数据库更新,但我的网页将不会更新到上午7:10。即使1秒钟不同步数据也是不可接受的。
  3. 最好的方法是什么?任何智能解决方案我想避免一次又一次地避免往返于数据库的同一数据。

    SQL server 2000,ASP。

3 个答案:

答案 0 :(得分:1)

您可以使用SqlCacheDependency吗?

顺便说一下,不是1秒不同步也不是一个现实的目标。

答案 1 :(得分:0)

您需要某种轮询解决方案。

就在我的头顶,我会做这样的事情。

  1. 在正在填充的表(表A)上设置一个触发器,以便在插入和udpates时更新另一个表上的某个控制标志,让我们将其称为控制表。

  2. 设置您的网站以在每天上午7点到早上7点10分之间每隔1秒轮询一次控制表。如果控制表指示新数据已到达表A,请抓住它们并更新页面,否则不执行任何操作。然而,尽管每秒轮询控制标志太重要了,但是你必须问自己,如果数据不同步几秒钟就会出现这么大的问题,比如说每10秒轮换一次而不是每秒一次。 。

答案 2 :(得分:0)

好的,如果我正在读这个......

如果它是相同的数据,您可以通过索引相应的字段并将数据按压到可能不那么结构理想的表单来减少数据库中的负载,以加快查询速度。

问题是判断数据是否已被更改的唯一方法是查询数据,因此您无法真正避免轮询数据库。最安全的bety是优化结构和查询,以尽可能减少对服务器的负担。