首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章

SQL Server误区30日谈-Day6-有关NULL位图的三个误区

char nchar varchar nvarchar的区别

在SQLSERVER内部有很多地方都使用到了位图技术,包括执行计划数据库系统页面,复制,还有这篇文章说到的数据行中的NULL位图

执行计划中有位图运算符

SQLSERVER中NULL位图的作用

数据库系统页面有:DCM页面、BCM页面,详细请看:SQL Server 2008 存储结构之DCM、BCM

复制:Replication的犄角旮旯(三)--聊聊@bitmap(@bitmap 是binary类型,即二进制串;简单来说,它是用来表示所操作的字段位置的参数,通过@bitmap,分发代理从distribution.dbo.msrepl_commands中读取命令时(update操作),才会知道哪些列进行了更新;)

而这些位图技术的作用无疑都是为了 标志位

标志哪些地方发生了变化,发生了变化的就标记为1,没有发生变化的就标记为0

 


建立环境

建表

1 USE [pratice]
2 GO
3 
4 
5 --允许空,varchar类型
6 CREATE TABLE testnullvarchar(id INT ,NAME VARCHAR(20) NULL)
7 GO

插入数据

1 --插入数据
2 INSERT INTO [dbo].[testnullvarchar] ( [id],[Name] )
3 SELECT 1 ,NULL UNION ALL
4 SELECT 2,''
5 GO

查看

1 SELECT * FROM testnullvarchar

SQLSERVER中NULL位图的作用

建立DBCCResult表

 1 CREATE TABLE DBCCResult (
 2 PageFID NVARCHAR(200),
 3 PagePID NVARCHAR(200),
 4 IAMFID NVARCHAR(200),
 5 IAMPID NVARCHAR(200),
 6 ObjectID NVARCHAR(200),
 7 IndexID NVARCHAR(200),
 8 PartitionNumber NVARCHAR(200),
 9 PartitionID NVARCHAR(200),
10 iam_chain_type NVARCHAR(200),
11 PageType NVARCHAR(200),
12 IndexLevel NVARCHAR(200),
13 NextPageFID NVARCHAR(200),
14 NextPagePID NVARCHAR(200),
15 PrevPageFID NVARCHAR(200),
16 PrevPagePID NVARCHAR(200)
17 )
18 GO
View Code

相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2021-10-16
猜你喜欢
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-05-31
相关资源
相似解决方案