【发布时间】:2011-11-30 19:24:05
【问题描述】:
我们的 SQL 数据库中有 221gb 的表,主要是重复数据。
团队已在 HEAP 上创建了非聚集索引。这真的对性能有帮助吗?
我们是否应该将 IDENTITY 列放入表中,然后创建 CLUSTERED 索引,然后我们可以创建 NON 聚集索引。
【问题讨论】:
标签: sql-server sql-server-2005 indexing clustered-index
我们的 SQL 数据库中有 221gb 的表,主要是重复数据。
团队已在 HEAP 上创建了非聚集索引。这真的对性能有帮助吗?
我们是否应该将 IDENTITY 列放入表中,然后创建 CLUSTERED 索引,然后我们可以创建 NON 聚集索引。
【问题讨论】:
标签: sql-server sql-server-2005 indexing clustered-index
视情况而定
关于数据的使用模式和结构。
非聚集索引是否覆盖?
表中的数据是否一直在变化?
具有覆盖的非聚集索引(或多个索引)的堆表可以胜过聚集索引是唯一“索引”的聚集索引(聚集索引显然总是覆盖,但可能不是最佳搜索)
请记住,聚集索引不是索引(在基于键查找数据存储位置的意义上),它是由索引选择组织的整个表。在真正的(非聚集)索引中,索引中只包含键和包含的列,这意味着(通常)每个数据库页面可以存储更多的行,而不必要地读取的数据更少。
大多数表都应该有一个聚集索引,但非聚集索引的选择是大部分性能的来源。
【讨论】: