什么是SQL Server中的页面,我需要担心吗?

Ben*_*erg 25 sql-server

我在SQL Server 2008中遇到过该页面,并对此感到有些困惑.我目前正在阅读MCTS Self-Paced Training Kit(考试70-433):Microsoft SQL Server 2008-数据库开发,作者讨论这个概念,但是以有限的方式.

从MSDN" 理解页面和范围 "我得到一个没有真正帮助的答案.该网页描述了页面的大小(8kb)以及页面中行的存储方式,以及如果行不适合页面,将如何自动移动列(由SQL Server).

但是,我仍然想知道页面级是否应该注意设计具有ER图表,表格和数据类型的数据库?或者,我应该只依靠SQL Server自动处理页面并以最佳方式处理页面?

替代文字

Thanx听!

mar*_*c_s 40

是的!页面是SQL Server中最基本的存储元素.

在页面上的8192个字节中,约.作为用户,您可以使用8060.如果您能够很好地将数据行放到页面上,那么它们将占用更少的存储空间.

如果您的数据行例如是4100字节长,则只有一行将存储在页面上(页面的其余部分 - 3960字节 - 是浪费的空间).重要的一点是:这些页面不仅与磁盘相关,而且还与SQL Server主内存相关 - >您希望尽量避免在页面上无法容纳任何有用信息的大面积空间.

如果您可以设法减少占用4000字节的行,那么突然您可以在页面上存储两行,从而显着减少浪费空间的开销(每页最多60个字节).


Shi*_*ala 15

在遇到性能问题之前,您无需担心8 KB的页面结构.但是如果你想知道8 KB页面的内部,这里有一个YouTube视频http://www.youtube.com/watch?v=He8MRttysmY,它演示了8 KB页面的外观.

在此输入图像描述

1.Page header存储有关页面的信息,如页面类型,下一页和上一页(如果它是索引页面,页面中的可用空间等).

2.页面标题数据行部分后面.这是您实际存储数据的位置.

3.路径偏移信息存储在页面的末尾,即数据行部分之后.每个数据行都有一个行偏移量,行偏移量的大小是每行2个字节.行偏移存储有关行距页面开头的距离的信息.

用简单的单词表示完整的页面方程如下所示.

页面(8 KB/8192字节)=页眉(96字节)+实际数据(无论什么字节)+行偏移(每行2个字节).

  • -1 b/c"在你遇到性能问题之前,你不必担心8 KB的页面结构".我目前正在尝试使用包含1.73亿行的表来修复生产sql server.应在设计时考虑性能(以及页面大小). (2认同)
  • 尽管这个答案提供了信息,但我认为在出现问题之前忽略页面大小是不明智的。 (2认同)