首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server是如何在内部处理Server的?

SQL Server是如何在内部处理Server的?
EN

Stack Overflow用户
提问于 2012-02-18 15:11:27
回答 1查看 1K关注 0票数 3

我想知道SQL Server是如何在内部处理varchar动态长度和存储的。

如果我知道列中的字符长度是固定的,那么使用Varchar会有好处吗?

我知道CHARVARCHAR之间的区别,但是在大型数据库中使用CHARVARCHAR进行数据库设计的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 15:30:32

CHAR以行为单位分配其大小,VARCHAR存储字符串的实际大小(2字节),然后存储实际字符串,因此varchar的开销是+2字节,而CHAR的开销是它的大小减去实际字符串长度。如果在varchar中存储空值-其在db中的大小为零。

请参阅Anatomy of the Record

记录头4字节长两个字节的记录元数据(记录类型)两个字节在记录中指向记录的空位图固定长度部分,包含存储具有固定长度的数据类型的列(例如bigint、char(10)、datetime)记录中列的计数的空位图两个字节记录中每列存储一位的字节数,而不管该列是否可以为空(这是

与SQL Server2000(每个可空的列只有一位)不同且更简单)这允许在读取为NULL的列时进行优化这是一个14字节的结构,包含一个时间戳和一个指向tempdb中版本存储的指针

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9339386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档