SQL Server最大行大小

时间:2020-03-05 18:40:51  来源:igfitidea点击:

今天遇到了这个错误。想知道是否有人可以告诉我这是什么意思:

Cannot sort a row of size 9522, which is greater than the allowable maximum of 8094.

那是8094个字节吗?人物?田野?连接多个超出一定限制的表是否有问题?

解决方案

回答

在SQL 2000中,这曾经是一个问题,但我认为在2005年已解决。

回答

8094字节

如果我们列出了有关我们正在做的事情的更多信息,则可能有助于我们找出实际原因。

回答

这篇文章在解释它方面做得很不错(在SQL 2005中):

http://www.consortioservices.com/Blog/2008/02/28/MaximumRowSizeInSQLServer2005ToTheLimit.aspx

回答

在SQL 2000中,行限制为8K字节,与内存中的页面大小相同。

[编辑]

在2005年,页面大小是相同的(8K),但是数据库使用页面行中的指针来指向其他包含较大字段的页面。这使2005年可以克服8K行大小的限制。

回答

似乎吸引了很多人的问题是,我们可以创建一个表,根据定义,该表可以容纳8K以上的数据,并且可以接受它。该表将正常工作,直到我们实际尝试在表中插入超过8K的数据为止。

因此,假设我们创建一个表,该表具有一个用于主键的整数字段和10个varchar(1000)字段。该表在大多数情况下都可以正常工作,因为填写10个varchar(1000)字段的次数很少。但是,即使我们尝试在每个字段中输入1000个字符,它也会给我们带来此问题中提到的错误。

回答

仅供参考,如果它是由删除可变长度列后需要回收的空间引起的,则在数据库上运行此SQL命令可以解决此问题:

DBCC CLEANTABLE (0,[dbo.TableName])

请参阅:http://msdn.microsoft.com/en-us/library/ms174418.aspx