ZiG*_*iGi 2 t-sql database sql-server size nvarchar
在 SQL Server 中,如果您创建类型为 的列NVARCHAR(MAX),并且仅在其中填充 128 个字符 - 它是否会比您创建它时消耗更多的存储空间NVARCHAR(128)- 或者它的大小相同?
我做了一个小实验,使用以下代码创建 2 个表并用同样随机的 128 个字符填充它:
CREATE TABLE dbo.MyTextFix (
[val] NVARCHAR(128) NOT NULL
)
CREATE TABLE dbo.MyTextMax (
[val] NVARCHAR(MAX) NOT NULL
)
SET NOCOUNT ON;
DECLARE @COUNT INT = 0
WHILE (@COUNT <= 100000)
BEGIN
DECLARE @VAL NVARCHAR(128) = CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128))
INSERT INTO dbo.MyTextFix ([val]) VALUES (@VAL)
INSERT INTO dbo.MyTextMax ([val]) VALUES (@VAL)
SET @COUNT = @COUNT + 1
END
Run Code Online (Sandbox Code Playgroud)
现在 - 我们将使用“按表的磁盘使用情况”来检查表的实际大小:
正如您所看到的,即使一个表具有 aNVARCHAR(128)而另一个表具有NVARCHAR(MAX)数据类型 - 如果我们只填充 128 个字符 - 两个表的大小相同。
| 归档时间: |
|
| 查看次数: |
2318 次 |
| 最近记录: |