根据我的经验,我已经了解到使用代理INT数据类型列作为主键。与使用GUID或char/varchar数据类型列作为主键相比,标识键列提供了更好的性能。只要有可能,我都会尝试使用身份键作为主键。但最近我遇到了一个模式,其中的表是水平分区的,并通过分区视图进行管理。因此,表不能有标识列,因为这将使分区视图不可更新。解决这个问题的一种方法是创建一个带有标识列的虚拟“键生成器”表,以生成主键的ID。但这将意味着每个分区视图都有一个“键生成器”表。我的下一个想法是使用float作为主键。原因是我设计的以下关键算法
SET @KEY = CONVERT(FLOAT,