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

