我应该尝试停止隐式转换吗?

时间:2017-05-19 20:23:46

标签: sql-server-2012 cardinality

我有一个数据库中的表我不能编辑,因为它属于第三方。它们有一个数据类型为Char(2)的字段,该字段包含以下值:

01
02
03
04

我还有其他几个具有相同字段和值的物理和临时表。我正在制作一个结合这些表之间的数据的大型表。但是,当我运行代码时只选择该字段没有做任何事情,执行计划会隐式转换为int。

我不在乎该字段是int,因为这对我来说更有意义,但执行计划还指出转换

"may affect cardinality estimate"

我遇到这个代码运行缓慢的问题,并且认为这可能是问题所在。

我应该尝试找到一种方法来停止转换,还是可能不会导致我的速度减慢?

编辑: 此列用于连接

的额外信息

如果您需要更多信息,请与我们联系。

使用SQL 2012

1 个答案:

答案 0 :(得分:1)

您可以使用您的INT ID和Char(2)列(如域表)创建一个新表。 您可以在其他表中将此INT列转换为PK和FK。因此,您将比较您的表中的INT x INT和Char(2)x Char(2)与此新表和第三方表。这可能适合你。 (对不起我的英文)