目标是尽可能频繁地更新 UI,但性能是一个问题,应尽量减少对数据库的访问。
我使用索引视图来保持不是特定时间间隔的项目的最新统计信息,但这不适用,因为日期是不确定的。
其他选择是:
每 X 分钟运行一次作业以收集统计信息。
添加触发器以响应插入。
每次/以定义的频率运行存储过程。(大部分有关表格已于有关日期编入索引)
是否还有其他我尚未确定的选项,并且是否有针对此类问题的“首选”解决方案?Job/Trigger/SP 选项如何比较?
目标是尽可能频繁地更新 UI,但性能是一个问题,应尽量减少对数据库的访问。
我使用索引视图来保持不是特定时间间隔的项目的最新统计信息,但这不适用,因为日期是不确定的。
其他选择是:
每 X 分钟运行一次作业以收集统计信息。
添加触发器以响应插入。
每次/以定义的频率运行存储过程。(大部分有关表格已于有关日期编入索引)
是否还有其他我尚未确定的选项,并且是否有针对此类问题的“首选”解决方案?Job/Trigger/SP 选项如何比较?
如果您在“固定”时间间隔内运行,则可以使用存储聚集索引键的查找表。假设键是一个,INT Identity
你可以制作一个像这样的表:
Time Datetime,
Qtr_Hour int,
Half_Hour int,
Hour int
运行一个执行的查询:
SELECT COUNT(*)
FROM MyTable
WHERE ClusterKey > (SELECT Qtr_Hour
FROM LookupTable)
然后使用 的新相关值更新表MAX(ClusterKey)
。
您需要为您的用例制定详细信息,但如果您有一个 1 行表,您只需在查询时保持最新状态,并且它使用集群键作为参考点,那么获得自上次更新以来的行数增量。