我有一个表,其中包含许多具有15位精度的浮点数据类型列。每列占用8个字节的存储空间。大多数情况下,数据不需要这么高的精度,可以存储为实际数据类型。在许多情况下,该值可以为0,在这种情况下,我可以避免存储单个字节。
我的目标是优化空间存储要求,这是我面临使用SQL Express 4GB数据库大小限制的问题。
如果byte,real和float数据类型存储在sql_variant列中,那么存储这些值显然会产生一些开销。这个开销的成本是多少?
然后我需要评估一下我是否真的会节省大量空间(或不用)转换为使用sql_variant列数据类型。
谢谢,Elan
答案 0 :(得分:1)
您不会使用sql_variant节省空间,而只需引入整个复杂程度
每列应具有正确的数据类型,以在此字段中存储所有可能的值。你需要全面浮动吗?你能用tinyint吗?等等
如果您担心4GB限制,请升级到新的Express版本(10GB)或升级版本。
答案 1 :(得分:1)
我发现,就sql_variant而言,以下文章对于揭示存储成本非常有用: