8060 B数据页(SQL Server)中的8078字节?

时间:2010-09-23 13:16:08

标签: sql-server tsql sql-server-2008 data-structures data-storage

随处可写的是,SQL Server中的数据以8K(8192 B)的页面写入,每个页面有8060字节的数据,其余的是开销(系统信息)。

尽管如此,最近的文章[1]给出了代码示例,据我所知,8078字节的数据适合页面。

每页每页理解8,060 B我会错过什么?

我验证了x86 SQL Server 2008 R2上的代码......


更新:

我是否看到有关[1]后续行动的答案?我很遗憾,我没有将其标记为对我有帮助(并对我而言)并立即发表评论......我只想在回复之前调查更多...


Update2:

我发布了子问题[2]

[1]
表设计如何影响SQL Server性能?
http://sqlserver-training.com/how-table-design-can-impact-your-sql-server-performance/-

[2]
如何达到每行8060字节和8000(varchar,nvarchar)的限制?
How do you get to limits of 8060 bytes per row and 8000 per (varchar, nvarchar) value?

2 个答案:

答案 0 :(得分:4)

长答案短,限制为每行8060字节,但每页8096字节。您链接的文章中的行的行大小约为4000字节,因此它们远低于每行的限制。但是,这并没有回答在页面上有多少这样的行的问题。

请参阅联机丛书中的“估算堆的大小”:

http://msdn.microsoft.com/en-us/library/ms189124.aspx

如果您对文章中的表进行计算,您会看到第一个表的物理行大小为4048字节,这是页面8096限制的一半。

答案 1 :(得分:2)

  • 最大大小为8060字节
  • 在这种情况下,每个4039字节都有两个