gpt4 book ai didi

sql-server - NVARCHAR(MAX) 是否比 NVARCHAR(N) 消耗更多存储空间(物理大小)

转载 作者:行者123 更新时间:2023-12-03 08:46:06 26 4
gpt4 key购买 nike

在 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

现在 - 我们将使用“按表的磁盘使用情况”来检查表的实际大小:

enter image description here

如您所见,即使一个表具有 NVARCHAR(128) 而另一个表具有 NVARCHAR(MAX) 数据类型 - 如果我们只填充 128 个字符- 两张 table 的尺寸相同。

关于sql-server - NVARCHAR(MAX) 是否比 NVARCHAR(N) 消耗更多存储空间(物理大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61429607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com