gpt4 book ai didi

sql-server - varchar 值如何存储在 SQL Server 数据库中?

转载 作者:太空狗 更新时间:2023-10-30 01:41:28 25 4
gpt4 key购买 nike

我的同事的团队领导提出了一个奇怪的要求;他坚持创建长度为 16*2nvarchar 列。

这种限制有什么意义?

我可以假设短字符串(例如小于 128 个字符)直接存储在表的记录中,从这个角度来看,限制将有助于对齐记录中的字段,较大的字符串存储在数据库中"heap"并且只有对这个字符串的引用被保存在表记录中。

是这样吗?

这个要求有合理的背景吗?

顺便说一句,DBMS 是 SQL Server 2008。

最佳答案

据我所知,完全没有意义的限制。假设标准 FixedVar 格式(与行/页压缩或稀疏列使用的格式相反)并假设您正在谈论 varchar(1-8000)

所有 varchar 数据都存储在可变长度部分中行的末尾(如果行中放不下,则存储在 offrow 页面中)。它在该部分中消耗的空间量(以及它是否结束行)完全取决于实际数据的长度,而不是列声明。

SQL Server 在分配内存时将使用列声明中声明的长度(例如,用于排序 操作)。它在该实例中所做的假设是 varchar 列将为 filled to 50% of their declared size on average所以在选择尺寸时,这可能是一个更好的选择。

关于sql-server - varchar 值如何存储在 SQL Server 数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704634/

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