当前位置:  开发笔记 > 数据库 > 正文

为什么Guid.ToString()会颠倒字节顺序?

如何解决《为什么Guid.ToString()会颠倒字节顺序?》经验,为你挑选了1个好方法。

我们将一些Guid存储在MS SQL数据库中.有一些遗留代码可以执行Guid.ToString(),然后将它们传递给a,varchar(64)并且有一些较新的代码使用唯一标识符参数传递它们.当您使用MS SQL Management studio查看结果时,它们看起来有所不同.前三个块的字节顺序相反,但最后一个块保持不变.为什么?



1> Keith..:

Sql server中的Uniqueidentifier字段可以被索引,因此是"向后"的.

可以从机器特定信息和"事件时间"信息生成Guids.

.Net中的默认Guid是随机的,但您可以通过外部调用从中获取顺序Guid:

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

这将根据您的MAC地址(MSDN文档)顺序获取Guids .

如果您使用.ToString()这些顺序guid,那么您将看到字符串的第一部分变化,而其余部分保持不变.

这使Guids之间的等式检查更快(因为差异将在开始时)并改善截断的变化.

对于搜索列,SqlServer以与电话目录或字典类似的方式构建索引.搜索以"Over*"开头的单词比找到以"*flow"结尾的单词要快得多.

这意味着对于Sql server,任何顺序Guid都需要首先与重复值一起存储,因此它将它们存储在前面.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有