随处可写的是,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?
答案 0 :(得分:4)
长答案短,限制为每行8060字节,但每页8096字节。您链接的文章中的行的行大小约为4000字节,因此它们远低于每行的限制。但是,这并没有回答在页面上有多少这样的行的问题。
请参阅联机丛书中的“估算堆的大小”:
http://msdn.microsoft.com/en-us/library/ms189124.aspx
如果您对文章中的表进行计算,您会看到第一个表的物理行大小为4048字节,这是页面8096限制的一半。
答案 1 :(得分:2)