sql-server - SQL Server : Data Page size confusion: 8060 + 96 byte is still less than 8k byte

标签 sql-server

SQL Server 将数据存储在每页 8k (8192) 字节中。在数据页中,保留 96 个字节作为页头。考虑到数据页最大允许容量8060字节,还剩下36字节。但我找不到任何引用资料来说明这个 36 字节 block 的去向。

有什么帮助吗?

最佳答案

槽位数组/行偏移数组没有指定固定大小。

页头占据每个数据页的前 96 个字节(为数据、行开销和行偏移留下 8,096 个字节)。其中,单个数据行的最大大小可以为 8,060 字节。

给定页面上存储的行数因表而异 结构和所存储的数据。具有所有固定长度列的表每页始终可以存储相同数量的行;可变长度行可以根据输入数据的实际长度存储尽可能多的行。

例如,一个页面可以包含超过 19 行,其中每行大小为 403 字节。在这种情况下,槽数组大小将为 38 字节。

关于sql-server - SQL Server : Data Page size confusion: 8060 + 96 byte is still less than 8k byte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29456388/

相关文章:

java - 身份验证失败 Sql Server JDBC Java 8

sql - 为什么这个查询不能正常工作?

c# - 批量插入记录到 SQL Server 数据库

SQL Server 查询 : Union vs Distinct union all performance

sql - 创建用户动态名称并分配角色

c# - 如何从包含 SELECT 语句的字符串中获取表名

sql-server - 带有实例名称和域的 JDBC 连接字符串

sql-server - 如何创建一个始终返回传递给其 WHERE 子句的值的表(或其他对象),如镜像

sql-server - 如何从 MS SQL 2008 中的数据库 ID、文件 ID、页面 ID 获取表名?

sql - 什么是 SQL Server 对 MySQL 的 unicode_ci 排序规则的模拟?