Pet*_*ner 5 sql-server sql-server-2012
SQL Server 2012 及更高版本中的类型所占用的空间损失是多少varchar?也就是说,如果我有 3 列类型nvarchar(或varchar就此而言),并且它们都是空的,那么表中占用了多少空间?
CREATE TABLE dbo.ReferringUrl
(
Id int IDENTITY(1, 1) NOT NULL,
RequestUrl nvarchar(384) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
ReferringUrlName nvarchar(384) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
ReferringIpAddress nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
)
Run Code Online (Sandbox Code Playgroud)
DBCC PAGE您可以使用SQL Server 内部查看器自行测试这一点。
下面举一些例子来说明以下几点。
varchar列除了列偏移数组(第 4 行和第 5 行)中的 2 个字节外,根本不占用任何空间。INSERT dbo.ReferringUrl
(Id,
RequestUrl,
ReferringUrlName,
ReferringIpAddress)
VALUES (1,N'AAA','BBB','CCC'),
(2,NULL,NULL,NULL),
(3,'','',''),
(4,NULL,NULL,'CCC'),
(5,'','','CCC'),
(6,'AAA',NULL,NULL),
(7,'AAA','',''),
(8,N'AAA','BBB','CCC')
Run Code Online (Sandbox Code Playgroud)

上图来自 SQL Server 内部查看器 - 它还有助于为下面所示的行中的各个组件提供密钥。






(由于内部查看器中的错误,这不会突出显示,但请注意它与前一行的长度相同)

| 归档时间: |
|
| 查看次数: |
4238 次 |
| 最近记录: |