相关疑难解决方法(0)

槽阵列和总页面大小

我继续在许多论坛和许多博客上看到一个页面的组成如下所示: 页面大小:16 x 512B = 8192B 页眉:= 96B 最大 In_Row 行:= 8060B

这留下 (8192 - 96 - 8060)B = 36B。

好的,这是合乎逻辑且正确的。我的问题是:为什么那么多人说剩下的36B是留给slot array的?

显然,插槽数组在页面上每行给出 2B;所以,它可以小到 2B,大到 1472B:

2B:1 行 * 2B = 2B

1472B:8096B = n*9B(带开销的最小行大小……想想单个 TINYINT 列)+ n*2B(每行槽阵列成本)=> 8096 = 11n => n = 8096 / 11 = 736。

736*2B = 1472B。

由于 14B 版本标签,这使我达到 20。

USE master ;
GO

CREATE DATABASE test ;
GO

USE test ;
GO

ALTER DATABASE test
    SET ALLOW_SNAPSHOT_ISOLATION ON ;
GO

ALTER DATABASE test …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 storage-engine data-pages database-internals

13
推荐指数
1
解决办法
1538
查看次数