我有什么方法可以在聚集索引中添加超过16列。
答案 0 :(得分:7)
自SQLserver 2008起,no。但是,如果您需要超过16列的聚簇索引,我怀疑瓶颈在其他地方。
答案 1 :(得分:2)
没有。此外,对于组合密钥大小,总共限制为900字节的数据。
从Create Index reference页面引用。
最多可以组合16列 单个复合索引键。一切 复合索引键中的列必须 在同一个表或视图中。该 最大允许大小的组合 索引值是900字节。更多 有关变量类型的信息 复合索引中的列,请参阅 备注部分。
答案 2 :(得分:2)
聚集索引中最多16列只能通过纯粹和完全疯狂来克服。你永远被锁在电脑前的那种,永远不允许尝试这样的事情。
因此,这是不可能的。
答案 3 :(得分:1)
正如其他人所说,这是不可能的,甚至是不可取的。对于宽键because,群集索引不是一个好的选择:
来自群集的键值 所有非群集使用索引 索引作为查找键。任何 在上面定义的非聚集索引 相同的表将是显着的 因为非聚集索引较大 条目包含群集密钥和 还为此定义了关键列 非聚集索引。
如果您对非聚集索引感到满意,那么从SQL Server 2005及更高版本开始,您可以使用Included Columns来克服900字节,16列限制。
答案 4 :(得分:1)
不,16是限制。
但是您可以将键组合成一个哈希值。这应该提高速度。 应该对哈希值进行索引。