繁体   English   中英

一起存储varchar(max)和varbinary(max)-问题?

[英]Storing varchar(max) & varbinary(max) together - Problem?

我有一个可以同时包含varchar(max)和varbinary(max)数据类型的条目的应用程序。 我正在考虑将它们放在单独的表中,即使在任何给定时间仅使用两者之一。

问题是将它们存储在一起是否会对性能产生任何影响。 考虑到它们存储在堆中,我认为将它们放在一起将不是问题。 但是,varchar(max)列可能设置了行表中的文本选项。

我在“谷歌搜索”时找不到任何性能测试或性能分析,可能是一个太具体的问题?

SQL Server 2008表如下所示:

Id
ParentId
Version
VersionDate
StringContent - varchar(max)
BinaryContent - varbinary(max)

应用程序将在查询数据时决定选择两列中的哪一列。 字符串列将比二进制列更频繁地使用-这会对性能产生影响吗?

请参阅此更早的答案此答案

不建议使用“行中的文本”选项,并应用text,ntext,image数据类型

默认情况下,varchar(max)将文本存储在行中,直到上限为止,然后将其存储在上限之外的行之外,除非设置了大值类型的“行外”选项,该选项始终存储在行外-这意味着您已经重新将数据从表中存储出来,然后再从该表中存储出来;-)。

如果您已经将它们存储在此单独的表中,那么除非您需要其他列建议的一对多关系,否则可能不是严格必要的,因为父行中现有数据的大小可能会将这些元素排除在外行。 但是,将数据逻辑上放在单独的表中,您确实会获得更多选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM