【发布时间】:2011-05-17 04:39:18
【问题描述】:
我有一个键/值表,用于存储可以是文本或数字的数据,但仅此而已。
在初步测试中,我看到将 citeria 应用于 sql_variant 列时的性能可怕,例如:
SELECT * FROM MY_DATA WHERE
MY_ENTITY_TYPE = 555
AND CAST(MY_SQL_VARIANT_COLUMN AS NUMERIC) = 2254
显然,这样的查询会受到一些打击,但我看到查询的时间远远超过 10 秒,表中只有几千行。
考虑到我将只存储数字或文本数据,使用 varchar(255) 列是否更合理?这样,选择性能应该很快,我只需要执行一个 post select CAST 来将数据转换为正确的数据类型。
【问题讨论】:
标签: sql-server