【问题标题】:How do we change the page size of SQL Server?我们如何更改 SQL Server 的页面大小?
【发布时间】:2011-08-15 16:00:03
【问题描述】:

MSDN

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

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

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

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

【问题讨论】:

  • 2) - 你没有 - 这是系统范围的硬编码设置,无法更改

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


【解决方案1】:

简短的回答:你不能改变它。

出于寻址效率(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 碎片(处理器页面必须映射到连续的硬件页面),在操作系统启动后不久就很难分配 1MB 页面。而且这么大的页面不能很好地与 WAL 配合使用(参见 ARIES)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      1) 8KB 页面只是一个遗留问题。我认为固定的 8KB 页面大小限制没有任何“好的”理由,但改变它可能需要 Microsoft 的大量投资,并且可能对客户来说是一条艰难的升级路径。

      2) 无法完成。更改它的选项将是一个非常好的功能,并且可能是一个早就应该进行的增强,但至少在几年内我们可能不会看到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多