Хранение varchar (max) и varbinary (max) вместе - проблема? - PullRequest
0 голосов
/ 19 марта 2010

У меня есть приложение, в котором будут записи типов данных varchar (max) и varbinary (max). Я подумывал о том, чтобы положить их вместе в отдельную таблицу, даже если в любой момент времени будет использоваться только один из них.

Вопрос в том, влияет ли их совместное хранение на производительность. Учитывая, что они хранятся в куче, я думаю, что их объединение не будет проблемой. Однако в столбце varchar (max), вероятно, будет установлен параметр таблицы в строке .

Я не мог найти тестирование производительности или профилирование во время "поиска в Google", возможно, слишком конкретный вопрос?

Таблица SQL Server 2008 выглядит следующим образом:

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

Приложение определит, какой из двух столбцов выбрать при запросе данных. Строковый столбец будет использоваться гораздо чаще, чем двоичный столбец - будет ли это влиять на производительность?

1 Ответ

0 голосов
/ 19 марта 2010

См. этот предыдущий ответ и этот ответ .

опция text in row устарела и применяет типы данных text, ntext, image

varchar (max) по умолчанию сохраняет текст в строке до предела, а затем за пределами строки выше предела, если не установлен параметр больших типов значений вне строки, в котором он всегда сохраняется вне строки - что теперь означает, что вы храните данные вне таблицы, а затем и из этой таблицы; -).

Если вы уже храните их в этой отдельной таблице, в этом может не быть строгой необходимости, если только вам не требуется отношение «один ко многим», которое предлагают другие ваши столбцы - поскольку размер существующих данных в родительской строке может привести к их элементы из ряда. Однако если данные логически находятся в отдельной таблице, вы получите больше опций.

...