我有一个解决方案,我插入的行使用GUID而不是身份。 Guid是在c#中生成的。身份插入 - 性能
我有另一种解决方案,其中表,索引等是相同的,但不是的GUID我用的身份,让SQL的服务器生成它们。
在后面的情况下,我得到一个性能问题....想法?
编辑
我真的很对不起!我回到家中安装了探查器,看到我正在比较苹果和梨......从我身边的一个大错过。我正在调用不同的SQL。现在持续时间大致相同。
我有一个解决方案,我插入的行使用GUID而不是身份。 Guid是在c#中生成的。身份插入 - 性能
我有另一种解决方案,其中表,索引等是相同的,但不是的GUID我用的身份,让SQL的服务器生成它们。
在后面的情况下,我得到一个性能问题....想法?
编辑
我真的很对不起!我回到家中安装了探查器,看到我正在比较苹果和梨......从我身边的一个大错过。我正在调用不同的SQL。现在持续时间大致相同。
我诚实地希望将性能问题与guid作为身份。当你使用guid时,如果你使用newid()而不是newsequentialid(),你可能会因为新记录被插入到表的中间而不是结尾而导致页面拆分。
为了帮助您解决您的问题,我们首先需要有关您的配置和性能指标的更多信息。
环境:
性能:
最初的假设/猜测:
您可以进行标识插入时,作为索引的前导列会看到页面的竞争不断增加,但竞争的资源将在B树的最后一页。
这当然只是一个理论,直到我们有更多的细节从你的工作。
。我会提供统计数据。如果我在降低指数时得到相同的测量结果,理论是否会失败? – Daniel 2010-10-26 10:27:08
嘿丹尼尔,你能证明我们所有人的表现问题是什么意思吗?你在插入物上看到的IO速度是多少,每秒插入多少个等。 – 2010-10-26 08:01:32
我知道这个问题有点含糊。我无法访问正确的代码。我将在今天晚些时候提供统计数据......对不起! – Daniel 2010-10-26 08:08:47
但是,像父行:1000,子行约为:10000; Guid解决方案为0.6秒,身份解决方案为2.5秒。 – Daniel 2010-10-26 08:10:32