SQL_Variant или отдельное значение типа данных в EAV? - PullRequest
0 голосов
/ 03 марта 2012

Мы используем sql_variant тип данных для значения в EAV, но я думаю, что лучше использовать одну таблицу для каждого значения типа данных, потому что sql_variant равен 8000 байт, и я беспокоюсь об этом типе данных для огромного значения.

Какая у тебя идея?Какой из них лучше?

ThanX

1 Ответ

0 голосов
/ 22 мая 2012

Я понимаю, что этот вопрос довольно старый, но я все равно решил ответить на него.

SQL_VARIANT НЕ использует 8000 байтов для каждой строки. Он использует то же количество байтов, что и «базовый тип данных» + до 16 байтов для хранения метаданных для записи. Он отлично работает для большинства EAV и обладает дополнительным преимуществом сохранения оригинального типа данных. Это также довольно быстро, особенно на вставках, потому что вам не нужно конвертировать в VARCHAR.

Реальная проблема не в том, использовать или нет SQL_Variant в EAV ... реальная проблема может быть причиной, по которой вы используете EAV для начала. ; -)

...