我有一个应用程序,它将包含varchar(max)和varbinary(max)数据类型的条目。我正在考虑将它们放在一个单独的表中,即使在任何给定时间只使用其中一个。
问题是将它们存储在一起是否会对性能产生任何影响。考虑到它们存储在堆中,我认为将它们放在一起不会有问题。但是,varchar(max)列可能会设置 文本行 表选项。
我在“谷歌搜索”时找不到任何性能测试或分析,可能是一个特定的问题?
SQL Server 2008表如下所示:
Id
ParentId
Version
VersionDate
StringContent - varchar(max)
BinaryContent - varbinary(max)
应用程序将决定在查询数据时选择哪两列。字符串列的使用频率远高于二进制列 - 这会对性能产生什么影响?
答案 0 :(得分:0)
请参阅this earlier answer和this answer。
不推荐使用text in row选项并应用text,ntext,image数据类型
varchar(max)默认情况下将行中的文本存储到限制,然后将行存储在限制之上的行之外,除非设置了超出行的大值类型选项,其中它总是存储在行外 - 现在将存储意思是你将数据存储在表格之外,然后也从表格中存储; - )。
如果您已将它们存储在此单独的表中,除非您需要其他列建议的一对多关系,否则可能不一定非必要,因为父行中现有数据的大小可能会强制这些元素不在行。从逻辑上将数据放在一个单独的表中,您可以获得更多选项。