2012-11-20 65 views

回答

1
if you don't have a specific reason to use GUIDs, use INTs. 

有益的GUID:

  • 唯一標識符是更好,因爲guaranteed to always return a unique value across space and time

  • 我不知道創建一個GUID的完整機制,但我似乎 記住它與您的 網卡上的MAC地址和系統時間有關。

  • 如果您是consolidating records from multiple SQL Servers into one table,就像在數據倉庫中一樣,這會派上用場。

    當SQL Server複製到多個SQL Server中時,GUID也會被SQL Server複製大量使用以跟蹤行。

    DISADVANTAGEOUS OF GUID:

  • 沒有方法來確定,其中唯一標識符生成 值序列。它們不適用於依賴遞增鍵值的現有應用程序

  • 將GUID用作鍵值的主要缺點是它們是 BIG。建立在GUID的索引將是更大,更慢 索引建立在IDENTITY列

  • GUID是有問題的,因爲高 隨機性的聚集鍵


+0

這真的是非常有用的信息。非常感謝你。 – techfun

+1

作爲PK的Guids有兩個主要問題。它們的大小,你不能做任何事情,它們的隨機性會導致索引碎片化和分頁;你可以通過使用newsequentialid()而不是newid()來獲得一個有序的id序列來避免後一個問題。如果您需要在中間層或客戶端上生成Guids,請查看「Comb」的概念。這是爲了解決與newsequentialid()相同的問題。 –