性能对INT与TINYINT的比较影响

时间:2017-05-05 16:24:16

标签: sql sql-server memory-management casting database-administration

我正在处理一些遗留表,这些表的列定义为INT,理想情况下应该是TINYINT,因为它只有一些0到10的查找值。

我正在编写一个SP,其中我将有一个temp变量与此列进行比较。例如:

tblLkpCode(代码INT,名称CHAR(1))

Code Name
0   A
1   B
2   C
3   D
4   E
5   F
6   G
7   H
8   I
9   J
10  K

在我的SP中,我的代码如下:

DECLARE @lkpCode TINYINT = 5    --Should I define this as INT or TINYINT?

SELECT Name FROM tblLkpCode WHERE Code = @lkpCode

我想知道在我的变量可以是TINYINT的情况下,我应该将它们定义为TINYINT,或者因为我要与之比较此变量的目标列是INT类型,所以我也应该将我的变量定义为INT。

如果我将变量定义为INT,则内存中所占用的空间将比TINYINT多,但如果我使用TINYINT,则可能会导致类比转换。

虽然我明白,鉴于我们现在拥有的内存和处理能力,使用这两者中的任何一个都可能根本不会产生任何性能差异。

但我仍然很想知道在这种情况下推荐什么或做好什么?

此外,想象一下,如果我们在20世纪80年代这样做,哪一个更有效,为什么?

0 个答案:

没有答案