每MSDN,
在SQL Server中,页面大小为8 KB。这意味着SQL Server数据库 每兆字节有128页。
我们如何更改页面大小,例如到4 KB或12 KB等?
此外,是否由于“先天硬件限制”,页面大小选择为8 KB?
或者8 KB只是基于启发式选择的任意足够好的数字来优化多数用例?
答案 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)无法完成。改变它的选择将是一个非常好的功能,可能是一个很长的过期增强,但不是我们至少可能会看到几年。