我想知道SQL Server限制组合索引的最大大小为900(https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15)字节的原因。
为了完全理解这一点,您将需要深入研究SQL Server数据页和索引表示的结构。这是两个开始的地方:pages和indexes。
不过,让我给你个主意。数据库将数据存储在“页面”上。这些固定的内存量,在SQL Server中为8,192字节。数据和索引都存储在同一页面上。这对管理第三级存储有很大帮助。页面管理系统是任何数据库系统中不起眼的重要部分。
索引页面需要存储各种类型的信息:
至少需要一个“拆分”值。因此很明显,索引键必须小于8,192字节。 SQL Server允许每个索引页上的“拆分”值以上。确切的长度由页面上存储的内容的简单算术确定。