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 域为什么是全零?
 

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

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

    本文方案适用于Microsoft Sql Server 2008/2012/2012 r2/2014版本,以下简称MSSQLSERVER. MSSQL默认是不允许远程连接,并且禁用sa账户的.如果想要 ...

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

    <Microsoft Sql server 2008 Internals>索引文件夹: <Microsoft Sql server 2008 Internals>读书笔记--文 ...

  3. PHP操作SQL Server 2008/2012

    PHP操作SQL Server驱动,微软官方提供2个版本,Version 2.0 和 Version 3.0 Version 2.0 版本支持的操作系统有: Windows Server 2003 S ...

  4. Microsoft SQL Server 2008 R2 安装卸载

    问题 问题1 标题: Microsoft SQL Server 2008 R2 安装程序 ------------------------------ 出现以下错误: Could not open k ...

  5. Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar

    Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar

  6. SQL Server 2008教程和Microsoft® SQL Server® 2008 R2 SP2 - Express Edition下载

    教程 SQL Server 2008 Tutorialhttp://www.quackit.com/sql_server/sql_server_2008/tutorial/ 数据库下载 Microso ...

  7. Microsoft SQL Server 2008 基本安装说明

    Microsoft SQL Server 2008 基本安装说明 安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来 ...

  8. Microsoft SQL Server 2008 R2 中文安装说明

    Microsoft SQL Server 2008 基本安装说明 安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来 ...

  9. Microsoft SQL Server 2008 安装图解(Windows 7)

    简介 本文详细记录了一次完整的Microsoft SQL Server 2008在Windows 7操作系统上的安装过程.注意:Microsoft SQL Server 2008与Windows 7操 ...

随机推荐

  1. SpringSecurity 获取认证信息 和 认证实现

    JdbcDaoImpl 实现获取认证信息 PasswordEncoder 实现具体认证过程

  2. IOC控制反转之Autofac

    https://www.jianshu.com/p/1b6cb076e2e5 博主:衡泽_徐峰 Autofac官网:https://autofac.org/ Autofac 是.Net非常好的一个IO ...

  3. npm安装node包时怎么显示安装进度

    npm config set loglevel=http 打开这个你会看到所有的 HTTP 请求,除此之外如果还有 \ 长时间打转,那就是外部模块的编译过程,一个字:等. 具体地址可参考https:/ ...

  4. 【Codeforces 644A】Parliament of Berland

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] https://blog.csdn.net/V5ZSQ/article/details/70873661 看这个人的吧. [代码] #incl ...

  5. Leetcode 68.文本左右对齐

    文本左右对齐 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本. 你应该使用"贪心算法"来放置给定的单 ...

  6. (12)GrabCut前景提取

    import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('opencv-python-foregr ...

  7. 一些非常有用的工具类之javamail(from韩顺平)

    之前编写一个类淘宝服务器时,需要使用javamail发送邮件,搜到的一个工具类,很有用. 需要下载导入:activation.jar和mail.jar package com.cx.service; ...

  8. Ubuntu 16.04安装uGet替代迅雷,并在Chrome中设置为默认下载器

    uGet是采用aria2作为下载后端,所以两个软件都必须同时安装. 1.安装uGet sudo add-apt-repository ppa:plushuang-tw/uget-stable sudo ...

  9. 字符串的切割操作(strtok,split)

    一:strtok C/C++:char *strtok(char s[], const char *delim); s 代表须要切割的字符串,delim代表切割的标志,參数都为比选!返回指向切割部分的 ...

  10. Andriod实现刮刮卡的效果

    思想: 将一个View设计成多层,内层(包含中奖信息)和外层(用于刮奖),外层的图层用Canvas与一个Bitmap关联,用这个关联的Bitmap来处理手势的滑动.类似于刮奖的动作. 使用paint. ...