Col1 和 Col1+2 上两个非聚集索引的优缺点

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

关于类似问题,请考虑以下事项:

  • 微软 SQL Server
  • T
    至少有 3 列 - A、B、C 和 D
  • PK 位于
    A
    (即非空、唯一和聚集索引)
  • B、C 上的非聚集索引#1
  • B 上的非聚集索引#2

在我礼貌地辩称索引 #2 是多余的/可以删除后,DBA 通知我需要两个索引,因为索引 #1 足以通过 (B) 或 (B+C) 访问表. IIRC,DBA 提到分页是他保留两者的理由。

问题#1

:DBA 正确吗?

问题#2

:无论想要保留这两个索引,拥有 2 个 NC 索引的优点/缺点是什么?

我确实了解集群(CI)/非集群(NCI)的主要区别。

特别是:

聚集索引定义了数据在叶节点组织的物理顺序。
  • 根据设计,CI 包含所有列。
  • 在NCI中,叶节点包含指向相应聚集索引键的指针。如果不存在聚集索引,则它们包含物理 HEAP 表的 RID(行标识符)。
  • 非聚集唯一索引包含 RID 作为 INCLUDED 列,而非聚集 NON-UNIQUE 索引包含聚集索引作为键查找列。
  • 当 NCI 没有查询所需的所有列(例如:per select、where 等)时,非聚集索引的读取将引用物理表数据。
  • 谢谢。

sql-server clustered-index non-clustered-index
© www.soinside.com 2019 - 2024. All rights reserved.