我有一组大约100万行(大约行号: 1.5kb),需要“缓存”,以便应用程序的许多不同部分都可以使用它。
这些行是来自其他表的已编译数据的派生/非规范化“视图”。生成这些数据并不是非常昂贵(30-60秒),但是作为应用程序可以直接查询的视图或表值函数的一部分,生成“动态”的速度太慢了。我想定期更新这些数据,也许每隔几分钟更新一次。
我的第一个想法是有一个计划作业,每n分钟更新一次全局临时表。
什么是最好的策略,表现方面?我不确定将它存储在真正的表与全局临时表(##tablename)与其他我没有想到的策略之间的性能含义。我不想用插入到这个表中的数据来破坏事务日志.这些都是派生的数据,不需要持久化。
我正在使用2000。在这个项目的时间框架内升级并不是一个选项,但是如果2005/2008/2010年间有功能可以使这更容易,我将非常感谢听到这一点。
发布于 2009-11-09 22:13:13
我建议使用物化视图 (AKA索引视图)。
限制:
1. TOP
2. Text, ntext or image columns
3. DISTINCT
4. MIN, MAX, COUNT, STDEV, VARIANCE, AVG
5. SUM on a nullable expression
6. A derived table
7. Rowset function
8. Another view
9. UNION
10. Subqueries, outer joins, self joins
11. Full-text predicates like CONTAIN or FREETEXT
12. COMPUTE or COMPUTE BY
13. Cannot include order by in view definition
https://stackoverflow.com/questions/1704153
复制相似问题