SQL 服务器数据库中最大值背后的原因是 900 字节

What is the reason behind maximum is 900 Byte in SQL Server database

我刚刚遇到并解决了索引字符串不能超过 900 字节的问题,因此当我们将它们定义为索引时,我们必须指定它们的长度。解决方案很简单,但我不明白这背后的原因。

另外,有人说长度是255,有人说450最安全。

255 在某种意义上对我来说听起来更准确,但在我的脑海中仍然不完全清楚。

如果有人能告诉我每行 900 字节背后的原因,我将不胜感激,并且在我们讨论 strings/chars

时使用 255 或 450 长度更准确吗

谢谢!

在 Azure SQL DB V12 和最新的 SQL 2016 CTP 中,非集群大小限制从 900 字节增加到 1,700 字节。不要问我为什么不是 1,701 :-)

我只能假设优化内部 SQL 服务器内存结构需要长度限制。