gpt4 book ai didi

java - 如何更好地处理耗时/CPU 密集型查询?

转载 作者:行者123 更新时间:2023-11-30 07:54:25 28 4
gpt4 key购买 nike

假设我们有一个SQL Server的实例(事实并非如此)。我们有一个使用 Spring 堆栈的 Java 应用程序。

有些查询已经优化,但由于聚合数据的逻辑复杂,它们仍然很慢。

我想到了几种方法(目前这些都是短期的):

  1. 继续进行调整(例如创建 View )并实现作业,以在 SQL Server 中重新计算这些数据,例如每5 分钟并将其存储在单独的表中。 (是的,这不是很好的解决方案,但仍然如此)。
  2. 实现某种机制来在后台计算/聚合该数据。可能实现 Lambda-architecture 的一部分。我已经看过Apache Spark以及其他。

优化下,这意味着这些查询正在使用正确的索引,并且一切都已“调整”。

我知道这不是一个问题,而是更多的提案/讨论。但我仍然受到质疑。

基于上述情况,处理这种情况的更好方法是什么?

<小时/>

更新#1

基于What you can and can't do with Indexed views对于 MS SQL Server,索引 View 不是正确的选择,因为它们不支持 COUNT、MIN、MAX、TOP、外连接或一些其他关键字或元素。您无法修改基础表和列。该 View 是使用WITH SCHEMABINDING 选项创建的。

更新#2

在花了一些时间之后。为了简单起见,我暂时停止使用物化 View 。

最佳答案

所以,不同的数据库引擎都有Materialized View的概念。 SQL Server 具有等效项 Indexed Views 。这些是专为您的具体用例而设计的。在基本上“滚动你自己的”物化 View 之前,我会强烈考虑这些方法。

关于java - 如何更好地处理耗时/CPU 密集型查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870866/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com