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