我有一个解决方案,我在其中使用GUID而不是Identity来插入行。 Guid是在c#中生成的。
我有另一个解决方案,其中表,索引等是相同的,但我使用标识而不是GUID,让Sql-server生成它们。
在后一种情况下,我遇到了性能问题......想法?
修改
我真的很抱歉!我回到家安装了探测器,看到我正在比较苹果和梨......我的一个很大的失误。我正在调用不同的sql。现在持续时间大致相同。
答案 0 :(得分:1)
老实说,我希望性能问题与guid一致。当你使用guid时,如果使用newid()而不是newsequentialid(),你就有可能进行页面拆分,因为新记录被插入到表格的中间而不是结尾。
答案 1 :(得分:0)
为了帮助您解决问题,我们首先需要有关您的配置和效果指标的更多信息。
环境:
性能:
初步假设/推测:
在执行标识插入时,您可能会看到页面争用,因为索引中的前导列不断增加,竞争资源将是B树中的最后一页。
在我们为您提供更多细节之前,这当然只是一种理论。