Sql server 我们应该使用bigint作为人工密钥吗?

Sql server 我们应该使用bigint作为人工密钥吗?,sql-server,sql-server-2016,data-warehouse,Sql Server,Sql Server 2016,Data Warehouse,我们希望在数据仓库中使用人工密钥 使用bigint作为人工键的数据类型是一个好主意吗?我认为因为它是64位的,CPU可以非常快速地处理它。或者这是错误的 我基本上使用尽可能最小的类型-以便在执行操作时读取更少的数据 所以,选择最适合你的类型。我猜INT对于数据仓库来说会很小,还记得YouTube计数器被2147483647个视图打破的时候吗?这是INT范围的上限 如果键是BIGINT,CPU的处理速度会有多快?不要担心这些东西——处理过程取决于其他因素——索引、行大小、执行计划、引擎是否能够成批

我们希望在数据仓库中使用人工密钥


使用bigint作为人工键的数据类型是一个好主意吗?我认为因为它是64位的,CPU可以非常快速地处理它。或者这是错误的

我基本上使用尽可能最小的类型-以便在执行操作时读取更少的数据

所以,选择最适合你的类型。我猜INT对于数据仓库来说会很小,还记得YouTube计数器被2147483647个视图打破的时候吗?这是INT范围的上限


如果键是BIGINT,CPU的处理速度会有多快?不要担心这些东西——处理过程取决于其他因素——索引、行大小、执行计划、引擎是否能够成批处理行等等。具有特定数据类型的引擎有多好是您最新担心的问题,即使速度很慢,我也怀疑您是否可以使用INT,因为业务需要。

虽然您的计算机将有64位寄存器,但性能方面的大部分挑战是如何将内容装入内存。使对象比需要的大对您的整体性能没有帮助。64位系统可以很好地执行32位算术

int是一种非常有用的数据类型,即使你坚持使用正值(我建议你在压缩得更好的时候使用正值),你仍然有超过20亿个值。如果你处理的是客户或产品等价值观,那就永远不会太小

如果您在一个庞大的站点上处理大量事务,那么您可能需要使用bigint来处理这些事务