位置: - 正文

SQL Server误区30日谈 第6天 有关NULL位图的三个误区(sql server233错误)

编辑:rootadmin
这样还能减少CPU缓存命中失效的问题(点击这个链接来查看CPU的缓存是如何工作的以及MESI协议)。下面让我们来揭穿三个有关NULL位图的普遍误区。 误区 #6a:NULL位图并不是任何时候都会用到 正确 就算表中不存在允许NULL的列,NULL位图对于数据行来说会一直存在(数据行指的是堆或是聚集索引的叶子节点)。但对于索引行来说(所谓的索引行也就是聚集索引和非聚集索引的非叶子节点以及非聚集索引的叶子节点)NULL位图就不是一直有效了。 下面这条语句可以有效的证明这一点: 你可以通过我的博文:Inside The Storage Engine: sp_AllocationMetadata - putting undocumented system catalog views to work.来获得sp_allocationMetadata 的实现脚本。

让我们通过下面的script来分别查看在堆上的页和非聚集索引上的页:

首先让我们来看堆上这页Dump出来的结果 再来看非聚集索引上的一页Dump出来的结果: 误区 #6b: NULL位图仅仅被用于可空列 错误 当NULL位图存在时,NULL位图会给记录中的每一列对应一位,但是数据库中最小的单位是字节,所以为了向上取整到字节,NULL位图的位数可能会比列数要多。对于这个问题.我已经有一篇博文对此进行概述,请看:Misconceptions around null bitmap size.误区 #6c:给表中添加额外一列时会立即导致SQL Server对表中数据的修改 错误 只有向表中新添加的列是带默认值,且默认值不是NULL时,才会立即导致SQL Server对数据条目进行修改。总之,SQL Server存储引擎会记录一个或多个新添加的列并没有反映在数据记录中。关于这点,我有一篇博文更加深入的对此进行了阐述:Misconceptions around adding columns to a table.

推荐整理分享SQL Server误区30日谈 第6天 有关NULL位图的三个误区(sql server233错误),希望有所帮助,仅作参考,欢迎阅读内容。

SQL Server误区30日谈 第6天 有关NULL位图的三个误区(sql server233错误)

文章相关热门搜索词:sql server233错误,sql语句错误提示,sql server 1222解决,sql server233错误,sql server错误和使用情况报告,sql server233错误,sql语句错误提示,sql server 错误,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server误区日谈 第7天 一个实例多个镜像和日志传送延迟 误区#7:一个数据库可以存在多个镜像错误这个误区就有点老生常谈了。每一个主体服务器只允许一个镜像服务器。如果你希望存在多个主体服务器的副

SQL Server误区日谈 第8天 有关对索引进行在线操作的误区 误区#8:在线索引操作不会使得相关的索引加锁错误!在线索引操作并不是想象的那么美好。在线索引操作会在操作开始时和操作结束时对资源上短暂的

SQL Server误区日谈 第9天 数据库文件收缩不会影响性能 误区#9:数据库文件收缩不会影响性能错误!收缩数据库文件唯一不影响性能的情况是文件末尾有剩余空间的情况下,收缩文件指定了TruncateOnly选项。收缩

本文链接地址:https://www.jiuchutong.com/biancheng/347821.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/biancheng/347822.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络