-2

目前我们有一个包含超过 11M 记录的 AuditLog 表。无论在索引和统计信息上,任何引用此表的查询都需要很长时间。大多数报告不会检查过去一年的审计记录,但我们仍希望保留这些记录。处理这个问题的最佳方法是什么?

我正在考虑保留 AuditLog 表以保存小于或等于一岁的所有记录。然后将任何超过一年的记录移动到 AuditLogHistory 表中。也许只是每晚运行一个批处理文件来移动这些记录,然后更新 AuditLog 表的索引和统计信息。这是完成此任务的好方法吗?或者我应该以什么其他方式存储旧记录?

从 AuditLog 表中带回的记录命中链接服务器并签入 6 个不同的数据库,以根据条件查看其中是否存在某个成员。我无权对链接服务器数据库进行任何更改,因此只能优化我所拥有的 Auditlog。访问链接服务器数据库会占用超过 90% 的查询成本。所以我只是想限制我能做的。

4

1 回答 1

3

首先,我很难相信您无法优化对具有 1100 万条记录的表的查询。您应该调查与经常运行的查询相关的索引。

无论如何,您的问题的答案是“分区”。您将按日期列进行分区,并确保在所有查询中都包含此条件。这将减少数据量并可能加快处理速度。

文档是学习分区的好地方。

于 2017-02-10T18:58:30.253 回答