Microsoft SQL Server 2008/2012 Internals 一处疑问

Kalen Delaney 等著的深入解析 Microsoft SQL Server 系列,享有盛誉,深入研读,是管窥深奥复杂之 SQL Server 的阶梯与门径。手头有 Microsoft SQL Server 2008 Internals 影印版,也有 Microsoft SQL Server 2012 Internals 电子版,相互参照,辅之以实际演练,受益匪浅。

但有一处,与实际演练情形有所出入。Microsoft SQL Server 2008/2012 Internals 在 272 页有这样一段:

这段文字,2008 版与 2012 版完全一样。文中说,如果向表中插入一行全空记录(除主键之外,其他可空的 varchar 字段全为 NULL):

INSERT INTO NullVarchar (col1,col2,col3,col4,col5,col6,col7,col8,col9,col10)

VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

则通过 DBCC PAGE 命令导出的数据表中的实际存储,其 NULL bitmap 域为全零。而实际的导出结果如下(SQL Server 2012 Express):

其中,NULL bitmap 域的值为 0xfe07,实际等于 0x07fe = 0000011111111110。此值的意义为:除第一个字段(主键字段 id)不为空外,其余 10 个字段全为空。

而 Status Bits A = 0x10 = 00010000,其中 bit 4 = 1,说明记录中含有 NULL bitmap 域。而 bit 5 = 0 则表示记录中没有可变长度字段,也就是说,因为所有的可变长度字段都为空,则 SQL Server 索性就不存储这些字段了。

Kalen Delaney 的书 Microsoft SQL Server 2008/2012 Internals 中,NULL bitmap 域为什么是全零?

时间: 2024-09-26 22:32:28

Microsoft SQL Server 2008/2012 Internals 一处疑问的相关文章

SQL SERVER 2008/2012/2012R2/2014 设置开启远程连接(sa配置)

本文方案适用于Microsoft Sql Server 2008/2012/2012 r2/2014版本,以下简称MSSQLSERVER. MSSQL默认是不允许远程连接,并且禁用sa账户的.如果想要在本地用SSMS连接远程服务器上的MSSQLSERVER,需要做两个部分的配置: 1. SQL SERVER MANAGEMENT STUDIO(SSMS) 2. SQL SERVER配置管理器(SQL SERVER CONFIGURATION MANAGER - SSCM) 并且需要注意的是,有些

《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)

<Microsoft Sql server 2008 Internals>索引目录: <Microsoft Sql server 2008 Internals>读书笔记--目录索引 在第五章主要学习了table的内部存储结构,第七章<Special storage>中将继续深入学习存储机制,那将是本书最难理解的一章.第六章主要介绍index的基础知识,第八章是<query Optimizer>,下面我们先来看看第六章:Indexes:Internals an

Microsoft SQL Server 2008 R2附加数据库报错5120解决办法

Microsoft SQL Server 2008 R2数据库附加报错5120,是权限的问题解决办法:邮件数据库文件的属性选中Authenticated Users 然后选中编辑把完全控制勾选上 单击确定,然后就可以附加数据库了 ! 若有疑问可以联系我www.jiangyong.net.cn,里面有我的QQ

Microsoft SQL Server 2008安装图解(Windows 7)(转载)

FoxDie 2010年04月17日 简介 本文详细记录了一次完整的Microsoft SQL Server 2008在Windows 7操作系统上的安装过程.注意:Microsoft SQL Server 2008与Windows 7操作系统存在一定的兼容性问题,在完成安装之后需要为Microsoft SQL Server 2008安装SP1补丁.下面将详细说明整个安装过程. 安装日志 在Windows7操作系统系,启动Microsoft SQL 2008安装程序后,系统兼容性助手将提示软件存

[MS]Microsoft SQL Server 2008 R2 开发版/企业版/标准版

Microsoft? SQL Server? 2008 R2 是一个功能强大且可靠的数据管理系统,它功能丰富,能保护数据,并且可改善嵌入式应用程序.轻型网站和应用程序以及本地数据存储区的性能. 数据中心版:PTTFM-X467G-P7RH2-3Q6CG-4DMYB(可用,已验证)DDT3B-8W62X-P9JD6-8MX7M-HWK38(待测) 开发版:MC46H-JQR3C-2JRHY-XYRKY-QWPVM (可用,已验证)FTMGC-B2J97-PJ4QG-V84YB-MTXX8(待测)

数据库备份和恢复秩序的关系(周围环境:Microsoft SQL Server 2008 R2)

让我们来看看在备份序列新手 --1.塔建环境(生成测试数据和备份文件) /* 測试环境: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) */ USE mast

Microsoft SQL Server 2008 R2完全卸载再安装手册

  Microsoft SQL Server 2008 R2安装后,可能一些原因导致程序故障,需要重新安装,但是卸载后,很难再进行安装,基本都会报错,导致程序无法正常安装使用,以下是亲测有效的方法,屡试不爽,以及一些其它可能出现的问题,如参照以下方法仍旧不能解决,建议重新安装系统,再安装数据库,这是最简单最有效的方法,. 第一部分完全卸载Microsoft SQL server 2008 R2 首先进入控制面板:鼠标左键点击左下角windows图标键 2. 进入后选择程序和功能 找到Micros

数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)

让新手们了解一下备份顺序 --1.塔建环境(生成测试数据和备份文件) /* 测试环境: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) */ USE maste

卸载Microsoft SQL Server 2008 R2 安装程序

在卸载Microsoft SQL Server 2008 R2 安装程序(简体中文)  出现 :"警告 26003.无法卸载 Microsoft SQL Server 2008 R2 安装程序支持文件,因为安装了以下产品:SQL Server 2008 R2 SP1 Database Engine Shared   SQL Server 2008 R2 SP1 Common Files".但是在程序列表中并未找到该程序,在网上找了找资料,可以使用 WMIC(Windows Manage