[英]SQL Server UDT sizes 2005 to 2008
在SQL Server 2005中,我们定义了一些UDT(用户定义的数据类型),特别是SK(用于代理键)。 这些被定义为32位'int'。 因此大小为4个字节。
在SQL Server 2008中,整数数据类型的UDT使用不同的存储机制,具体取决于精度:
存储显示UDT的最大存储大小。 最大存储大小因精度而异。
精密(数字).....存储(字节)
1 - 9 ........................ 5
10 - 19 .................... 9
20 - 28 ................... 13
29 - 38 ................... 17
这样做的一个结果是基于BOTH int和bigint的UDT将占用9个字节! 注意:native int和bigint数据类型仍然分别占用4和8个字节!
对于代理键UDT,9个字节似乎相当重要!
任何人都可以解释为什么会这样(特别是这个的设计理由是什么)? 为什么UDT和本机数据类型之间存在这种差异?
除了不使用UDT之外还有其他方法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.