我们如何更改SQL Server的页面大小?

时间:2011-08-15 16:00:04

标签: sql-server database sql-server-2008

MSDN

  

在SQL Server中,页面大小为8 KB。这意味着SQL Server数据库   每兆字节有128页。

我们如何更改页面大小,例如到4 KB或12 KB等?

此外,是否由于“先天硬件限制”,页面大小选择为8 KB?

或者8 KB只是基于启发式选择的任意足够好的数字来优化多数用例?

3 个答案:

答案 0 :(得分:19)

简短的回答:你无法改变它。

出于寻址效率(TLB)和IO效率(参见Reading From or Writing To Files Using a Scatter-Gather Scheme)的原因,数据库页面大小必须是操作系统页面大小的某个倍数,这是由平台硬件架构驱动的。 x86体系结构的页面大小为4k(请参阅x86 Wiki article上的侧栏,或参考Intel Software Developer's Manuals),较新的体系结构提供大页面,SQL Server利用它们进行内存分配,请参阅SQL Server and Large Pages Explained

由于数据库文件可移植性的原因,无法更改磁盘上的文件格式以适应现代CPU较大的页面,因此会破坏在旧硬件上读取数据库的功能。经验表明,由于物理RAM碎片(处理器页面必须映射到连续的硬件页面),在OS启动后很快就会很难分配1MB页面。这样一个大页面不适合WAL(参见ARIES)。

答案 1 :(得分:5)

SQL Server不允许更改页面大小 - 它的大小固定为8k,具有固定大小的标题/数据部分。

答案 2 :(得分:1)

1)8KB页面只是一些遗留问题。我不认为固定的8KB页面大小限制有任何“好”的理由,但改变它可能需要微软的大笔投资,并且可能是客户难以升级的路径。

2)无法完成。改变它的选择将是一个非常好的功能,可能是一个很长的过期增强,但不是我们至少可能会看到几年。