在这种情况下,“无效”通常可以指用户上个月从未从Web服务器访问过的数据。
随着数据库表的增大,知道记录的“非活动”状态可用于优化对活动数据的查询。
我知道一种方法可以
last_accessed
时间戳更新记录
已访问。inactive
标志。但是这种方法的两个主要问题是
想知道有什么更好或替代的方法。
答案 0 :(得分:0)
这是一种方法。
您可以编写一个查询,该查询实际上将检查last_accessed_date
是否在最近30天内(CASE WHEN last_accessed_date < SYSDATE-30
),并创建一个is_active
指示器。从本质上讲,这将使您可以将历史记录标记为有效或无效。
然后,完成此操作后,您需要例行(每天,每周或每月)运行此脚本以检查这些项目的状态。每月一次可能是个好主意,可以在非工作时间执行,这样不会对性能产生很大的影响(星期六上午3:00 AM)。我确定您可以与您的团队安排此时间,并让您的通信团队向最终用户发出通知,告知他们最终用户可能会在此时间段(本月的第一个星期六,凌晨3:00 AM-6:00 AM)看到可用性延迟等等。
此外,您可能会遇到第二种情况。每当有人访问记录时,您都可以进行小的逻辑检查,其本质上是“将last_accessed_date更改为今天。如果is_active当前为No,则切换为yes”。这样可以使您的数据库保持最新状态。
为了优化,最后一步是,如果您选择包括第二个选项(逻辑检查),则可能会有一个字段显示“ Last_Updated_Indicator”,这是该指标的最后更改日期。如果自上次运行整个数据库更新功能以来的最后更新指标在交货时间内,则可以跳过该指标。这将大大减少该更新过程对性能的影响。