我們將一些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. HighCharts爲什麼會顛倒我係列的順序?
- 5. Zend_Paginator顛倒順序
- 6. 爲什麼BinaryReader.ReadUInt32()會顛倒位模式?
- 7. 顛倒排序的順序
- 8. 爲什麼deque.extendleft()顛倒元素的順序?
- 9. ggplot2:爲什麼geom_line()圖形的顏色順序顛倒了?
- 10. 顛倒對的順序
- 11. 顛倒列表的順序
- 12. 將分頁顛倒順序
- 13. 顛倒陣列順序
- 14. ArrayList的顛倒順序
- 15. 顛倒CSS過渡順序
- 16. 爲什麼字典似乎被顛倒?
- 17. 爲什麼顛倒printf()的順序會產生不同的輸出?
- 18. 如何顛倒c#中的字節數組的順序?
- 19. 在Angular中顛倒排序順序
- 20. 爲什麼OpenGL將事物顛倒?
- 21. 爲什麼arr.reverse()顛倒原始數組
- 22. PHP顛倒子數組的順序
- 23. RLMArray內部對象的顛倒順序
- 24. highcharts堆疊系列順序顛倒
- 25. ArrayCollection顛倒我的對象的順序
- 26. 顯示鏈表時的顛倒順序
- 27. android - 顛倒數組的順序
- 28. zRSSfeed中RSS的顛倒順序?
- 29. 功能以顛倒順序的句子
- 30. 顛倒ListView顯示的順序