我有下表ReportType
。此表将只有100行左右,并且永远不会被应用程序更新(因此INSERT
,UPDATE
或DELETE
性能不是问题。
Table: ReportType
===========================================================
| ID (PK) | Name | ExportFormat | SourceDatabase |
===========================================================
是否仍然需要在ExportFormat
上放置非聚集索引?在某些情况下和某些报告中,此列用作过滤条件。它根本不具有高度选择性(可能只有10个不同的值),这表明它不会成为非聚集索引的良好候选者。但是这个表从未经历任何INSERT
,UPDATE
或DELETE
操作,所以肯定一个索引在这里实际上会受益(即使只是略微)?
答案 0 :(得分:3)
根据经验,一个少于128行的表上的索引会增加开销,而不是它的价值。特别是非聚集索引 - 单个书签查找可能比扫描整个表格更具扩展性。
答案 1 :(得分:2)
我不同意你接受的答案。
你说这个表是只读的,所以我没有看到创建覆盖非聚集索引的缺点,如下所示。
CREATE NONCLUSTERED INDEX IX
ON ReportType(ExportFormat) INCLUDE(ID,Name,SourceDatabase )
对于如此少量的行,其好处可能非常微不足道,但它避免了必须为ExportFormat