我需要构建一个历史报告,该报告仅从150GB大小的表中提供READ访问权限。我想知道我应该为以下所有内容创建列索引:
where code="RAM"
。我应该为所有这些创建另外10个索引吗?我主要担心的是性能问题。
答案 0 :(得分:1)
首先,你说你主要关心的是表现。表演阅读或表演写作?
因为理论上你可以将一个表索引到死亡状态,这会使读取变得很好,但每次插入或更新一行时都需要维护和更新它们。
第二个选择标记应该基于经常针对您的表运行的查询。
例如,假设您有一个包含ID, Type, TextValue
列的表。在您的应用中,您使用GetByID()
方法和ListWithType()
方法。您的指示应该基于SQL尝试过滤/加入的内容。在这种情况下,ID(显然是你的PK)和Type上的非唯一索引。
这显然是一个简单的概述。我建议您阅读如何阅读SQL Execution Plan并更改您的指标以改进它。
最后,当您创建标记时,请确保选择适当的fill factor(这取决于表格的使用方式),或者您将不断重建它们。