我知道 varchar(max) 和 nvarchar(max) 允许保存最多 2GB 的数据,但这与这个问题无关。
一个页面 8KB = 8192 字节
在 varchar 中,1 个字符就是 1 个字节。而在 nvarchar 中,1 个字符是 2 个字节。
varchar 允许有 8000 个字符(8000 字节)。而 nvarchar 允许有 4000 个字符(8000 字节)。
这是因为页面大小是 8192 字节吗?
Dav*_*oft 15
这是因为页面大小是 8192 字节吗?
是的。在 SQL Server 版本 7 中,引入了 8K 页,并且 varchar(n) 最大长度从 255 变为 8000。
版本 7 之前的页面大小是 2K,因此允许 varchar 占据页面的大部分也是新的。
J.D*_*.D. 11
是的,据我所知,这是人们使用VARCHAR(8000)
orNVARCHAR(4000)
代替任何更大大小的主要原因MAX
,包括 ,因为这些分别是每种数据类型的最大大小,可以在行中存储该字段的整个数据,这意味着相同的数据页。
这是因为 SQL Server 使用 8 KB 页,即 8,192 字节,其中 8,000 个字节用于用户数据,其余 192 个字节保留用于开销。
您可以在比较 SQL Server 中的 VARCHAR(max) 与 VARCHAR(n) 数据类型VARCHAR(8000)
中找到有关VARCHAR(MAX)
它们及其差异的更多深入阅读。那篇文章还特别提到:
您可能知道,SQL Server 中的基本存储单位是页。SQL Server 中的页面大小为 8 KB(8192 字节),并且是固定的。在页面上,SQL Server 使用 96 字节作为页眉。我们可以在 SQL Server 中存储 8096 字节(8192-96 字节)的数据。除此之外,页还包含行开销和行偏移,并留下 8000 字节用于数据存储。因此,我们可以使用 varchar(8000) 数据类型存储最多 8000 字节的数据。
归档时间: |
|
查看次数: |
12226 次 |
最近记录: |