2

使用宽列/稀疏表时需要超过 SQL Server 2008 中的 8k 记录限制。

长故事新客户旧系统使用调查系统,旋转数据,因此所有答案都是一列

我有 1500 列,现在我得到了

无法创建大小为 9652 的稀疏数据大于允许的最大稀疏数据大小 8019 的行。

如果可能,我需要超过 8k 记录限制

4

1 回答 1

3

不可能,因为 SQL Server 将行存储在 8K 页上。这样做的唯一方法是在行外存储一些数据(例如,对某些列使用 MAX 或其他 LOB 类型)。对您的应用程序来说,这看起来仍然像在同一行上,即使从逻辑上讲它在磁盘的完全不同的区域上。

如果您的稀疏列集单独超过了限制,对不起,您需要寻找一种不同的方式来存储数据(不是旋转的,EAV,或者只是使用两个由键连接的表,每个表包含一半的列集)。对于后者,您可以通过使用视图和/或通过了解划分的存储过程强制执行所有数据访问/ DML 来使这对用户相对透明。

于 2013-07-22T16:13:15.283 回答