源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SQL Server误区30日谈 第6天 有关NULL位图的三个误区

  • 时间:2022-06-30 16:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SQL Server误区30日谈 第6天 有关NULL位图的三个误区
这样还能减少CPU缓存命中失效的问题(点击这个链接来查看CPU的缓存是如何工作的以及MESI协议)。下面让我们来揭穿三个有关NULL位图的普遍误区。 [b]误区 #6a:NULL位图并不是任何时候都会用到 [/b]正确 就算表中不存在允许NULL的列,NULL位图对于数据行来说会一直存在(数据行指的是堆或是聚集索引的叶子节点)。但对于索引行来说(所谓的索引行也就是聚集索引和非聚集索引的非叶子节点以及非聚集索引的叶子节点)NULL位图就不是一直有效了。 下面这条语句可以有效的证明这一点:
[url=http://www.sqlskills.com/blogs/paul/post/Inside-The-Storage-Engine-sp_AllocationMetadata-putting-undocumented-system-catalog-views-to-work.aspx]Inside The Storage Engine: sp_AllocationMetadata - putting undocumented system catalog views to work[/url].来获得sp_allocationMetadata 的实现脚本。     让我们通过下面的script来分别查看在堆上的页和非聚集索引上的页:
[url=http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-null-bitmap-size.aspx]Misconceptions around null bitmap size[/url]. [b]误区 #6c:给表中添加额外一列时会立即导致SQL Server对表中数据的修改[/b] 错误 只有向表中新添加的列是带默认值,且默认值不是NULL时,才会立即导致SQL Server对数据条目进行修改。总之,SQL Server存储引擎会记录一个或多个新添加的列并没有反映在数据记录中。关于这点,我有一篇博文更加深入的对此进行了阐述:[url=http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-adding-columns-to-a-table.aspx]Misconceptions around adding columns to a table[/url].
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部