假设情况,例如我们有一些SQL Server
的实例(事实并非如此)。我们有一个使用Java
堆栈的Spring
个应用程序。
有些查询已经优化但由于聚合该数据的复杂逻辑,它们仍然很慢。
我有几种方法(目前这些是短期的):
SQL server
中重新计算这些数据,例如每 5分钟并将其存储在单独的表中。 (是的,它不是那么好的解决方案,但仍然)。在优化下,这意味着这些查询正在使用正确的索引,所有内容都已“调整”。
我知道这不是一个问题,因为更多的提案/讨论。但我仍然受到质疑。
基于上述情况处理这种情况的更好方法是什么?
基于What you can and can't do with Indexed views对于MS SQL Server,索引视图不是可行的方式,因为它们不支持 COUNT,MIN,MAX,TOP,外连接或其他一些关键字或元素。您无法修改基础表和列。使用WITH SCHEMABINDING选项创建视图。
花了一些时间在这上面。为了简单起见,我现在停止使用物化视图。
答案 0 :(得分:1)
因此,不同的数据库引擎具有Materialized View的概念。 SQL服务器具有等效的Indexed Views。这些是专为您的确切用例而设计的。在基本上“滚动你自己的”物化视图之前,我会强烈考虑这些方法。