我继续在许多论坛和许多博客上看到一个页面的组成如下所示: 页面大小: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