如何使用抽象类型存储数据?将数据存储为sql_variant数据类型是否合理?

时间:2013-07-09 07:35:50

标签: sql sql-server sql-server-2012

我需要存储未知类型(但可以在存储之前检查它)(抽象类型)数据。我可以看到存储它的两种变体。

检查数据类型并移至特定类型表。具有许多特定类型并不适合抽象。

或将所有内容存储为变体。

会有很多数据,我担心将布尔类型的数据保存到sql_variant会导致过多的内存浪费。是这样吗?

这种情况还有其他解决办法吗?

1 个答案:

答案 0 :(得分:1)

很难从你的问题中确定正确答案。

您期望使用哪些数据类型以及您要对这些类型执行哪些操作?

因为,如果您要为每种类型创建多个表,那么最终会使用sql_variant类型来增加磁盘的复杂性和大小。 请记住,当使用sql_variant表示布尔值时,将只表示1字节的开销(用于存储数据类型种类)+可变长度字节(您可能已经在表中)。 但是,如果您使用的是某种复杂的关键任务逻辑,如果您的数据访问框架不支持sql_variant,则不应使用sql_variant。