Сколько стоит в байтах накладные расходы на столбец sql_variant в SQL Server? - PullRequest
0 голосов
/ 03 июня 2010

У меня есть таблица, которая содержит много столбцов типа данных с плавающей точкой с точностью до 15 цифр. Каждый столбец занимает 8 байт памяти. В большинстве случаев данные не требуют такой точности и могут быть сохранены как реальный тип данных. Во многих случаях значение может быть 0, и в этом случае я могу избежать сохранения одного байта.

Моя цель состоит в том, чтобы оптимизировать требования к объему хранилища, с которыми я сталкиваюсь при работе с ограничением размера базы данных SQL Express 4 ГБ.

Если байтовые, вещественные и плавающие типы данных хранятся в столбце sql_variant, очевидно, что при хранении этих значений возникают некоторые накладные расходы. Какова стоимость этих накладных расходов?

Затем мне нужно будет оценить, действительно ли я получу значительную экономию пространства (или нет), переключаясь на использование типов данных столбца sql_variant.

Спасибо, Элан

Ответы [ 2 ]

1 голос
/ 23 июня 2010

Я нашел следующую статью очень полезной, чтобы пролить свет на стоимость хранилища в отношении sql_variant:

http://msdn.microsoft.com/en-us/library/ms178085.aspx

1 голос
/ 06 июня 2010

Вы не будете экономить место, используя sql_variant, и просто введете целый уровень сложности

Каждый столбец должен иметь правильный тип данных для хранения всех возможных значений в этом поле. Вам нужно плавать через доску? Не могли бы вы использовать tinyint? и т. д.

Если вас беспокоит ограничение в 4 ГБ, обновитесь до новых версий Express (10 ГБ) или переместите версию вверх.

...