【发布时间】:2011-10-13 21:08:35
【问题描述】:
我们有一个 SQL Server 2005 数据库,我们希望提高批量删除/插入/选择的性能,我注意到它使用 decimal(18,0) 作为其主键。我知道这会给我们带来比bigint 更多的价值,但我希望这可能是一个快速的胜利,并且根据我的计算应该会持续数百万年的增长。
我在 .net 中看到 docs 小数需要 16 个字节,而不是 long 所需的 8 个字节,但在 SQL Server 中它看起来像 bigint take 8 bytes 但 decimal(18,0) 只需要 5 bytes - 也可以看到通过select DATALENGTH(max(id)) from table。这是正确的吗?
还有其他原因bigint 可能会变慢还是我应该坚持使用decimal(18,0)?
【问题讨论】:
-
在你的情况下 decimal(18,0) 需要 9 个字节而不是 5
-
DATALENGTH 函数显示 5?
标签: sql sql-server performance sql-server-2005 types