我们将一些Guid存储在MS SQL数据库中。有一些遗留代码会执行Guid.ToString()
,然后将它们传递给varchar(64)
,并且有一些更新的代码使用唯一标识符参数传递它们。当您使用MS SQL Management Studio查看结果时,它们看起来不一样。前三个块的字节顺序是相反的,但最后一个保持不变。为什么?为什么Guid.ToString()会颠倒字节顺序?
8
A
回答
8
Sql服务器中的Uniqueidentifier字段可以编入索引,“向后”也是如此。
Guids可以从机器的具体信息和'事件时间'信息中生成。
.NET中的默认GUID是随机的,但你可以从它那里得到连续的GUID与一个外部呼叫:
[DllImport("rpcrt4.dll", SetLastError = true)]
static extern int UuidCreateSequential(out Guid guid);
这将让你,是连续的基础上您的MAC地址(MSDN docs)的GUID。
如果你.ToString()
这些连续的GUID,那么你会看到字符串的第一部分变化,而其余的保持不变。
这使得Guids之间的平等检查更快(因为差异将在开始时)并且改善截断的差异。
用于搜索列SqlServer以类似于电话簿或字典的方式构建索引。搜索以“Over *”开头的单词比找到以“* flow”结尾的单词要快得多。
这意味着对于Sql服务器,任何连续的Guid都需要先存储重复值,以便将它们存储在前面。
相关问题
- 1. MappedByteBuffer字节顺序颠倒?
- 2. 为什么警报顺序颠倒了?
- 3. 为什么字节是颠倒的?
- 4. 颠倒文件中的字节顺序
- 5. HighCharts为什么会颠倒我系列的顺序?
- 6. Zend_Paginator颠倒顺序
- 7. 为什么BinaryReader.ReadUInt32()会颠倒位模式?
- 8. 颠倒排序的顺序
- 9. 字符串中字的颠倒顺序
- 10. ggplot2:为什么geom_line()图形的颜色顺序颠倒了?
- 11. 为什么Ring中间件的顺序需要颠倒?
- 12. 为什么deque.extendleft()颠倒元素的顺序?
- 13. 为什么函数参数的顺序颠倒了?
- 14. 为什么字典似乎被颠倒?
- 15. 颠倒列表的顺序
- 16. 颠倒阵列顺序
- 17. ArrayList的颠倒顺序
- 18. 颠倒对的顺序
- 19. 将分页颠倒顺序
- 20. 颠倒CSS过渡顺序
- 21. 字符串到JSONArray颠倒顺序
- 22. 为什么颠倒printf()的顺序会产生不同的输出?
- 23. 如何颠倒c#中的字节数组的顺序?
- 24. 为什么我的C函数中会出现段错误,这会颠倒字符串中单词的顺序?
- 25. 在Angular中颠倒排序顺序
- 26. 颠倒使用DataTables排序的顺序
- 27. 为什么颠倒strings.xml中的字符串数组的声明顺序会改变事物?
- 28. 为什么SplPriorityQueue键被颠倒?
- 29. 为什么arr.reverse()颠倒原始数组
- 30. 为什么OpenGL将事物颠倒?