优化每日从大表中检索最新贷款条件日期[重复]

问题描述 投票:0回答:1

我有一个名为“dbo.Loans”的表,用于存储贷款信息,包括显示从贷款开始日期到结束日期每天剩余贷款金额的计算列。 “LoanName”列可能具有不同条目的重复值。 “ConditionDate”列表示我们要检查贷款信息的日期。

我的目标是检索每个“LoanName”的最新“ConditionDate”。通常,最近的“ConditionDate”对应于贷款的结束日期(当贷款完全还清时,通常提前)。

SQL 作业应每天运行以获取每个“LoanName”的最新“ConditionDate”。然而,由于该表包含大约 5 亿行,因此即使该表索引良好,每天运行此查询在性能方面也具有挑战性。

我正在寻找进一步优化此流程的方法。

SELECT LoanName, MAX(ConditionDate) as ConditionDate
FROM dbo.Loans
WHERE ConditionDate >= '20180101' 
GROUP BY LoanName
sql-server t-sql optimization
1个回答
0
投票

您提到

the table is well indexed.
您可能想要的索引是:

CREATE INDEX idx ON dbo.Loans (LoanName, ConditionDate);

事实上,上面的索引实际上应该是一个覆盖索引,意味着仅扫描这个索引就可以满足整个查询。 如果您的表上还没有此索引,您应该尝试添加它,然后检查性能。

© www.soinside.com 2019 - 2024. All rights reserved.