gpt4 book ai didi

c# - 是否有等同于 SQL Server newsequentialid() 的 .NET

转载 作者:IT王子 更新时间:2023-10-29 04:09:08 25 4
gpt4 key购买 nike

我们使用 GUID 作为主键,您知道默认情况下它是集群的。

当向表中插入新行时,它会插入到表中的随机页面(因为 GUID 是随机的)。这具有可衡量的性能影响,因为数据库将始终拆分数据页(碎片)。但我使用顺序 GUID 的主要原因是因为我希望将新行作为表中的最后一行插入...这将有助于调试。

我可以在 CreateDate 上创建聚集索引,但我们的数据库是自动生成的,并且在开发中,我们需要做一些额外的事情来促进这一点。此外,CreateDate 也不是聚集索引的理想选择。

过去,我使用 Jimmy Nielsons COMB's ,但我想知道 .NET 框架中是否有这方面的内容。在 SQL 2005 中,Microsoft 引入了 newsequentialid() 作为 newid() 的替代方法,因此我希望他们能制作一个 .NET 等效项,因为我们在代码中生成了 ID。

PS:请不要开始讨论这是对还是错,因为 GUID 应该是唯一的等等。

最佳答案

应该可以使用对 UuidCreateSequential 的 API 调用在 c# 或 vb.net 中创建顺序 GUID。下面的 API 声明 (C#) 取自 Pinvoke.net您还可以在其中找到有关如何调用该函数的完整示例。

[DllImport("rpcrt4.dll", SetLastError=true)]
static extern int UuidCreateSequential(out Guid guid);

UuidCreateSequential函数相关的MSDN文章可以是found here其中包括使用的先决条件。

关于c# - 是否有等同于 SQL Server newsequentialid() 的 .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/211498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com