教您使用UniqueIdentifier選取SQL Server主鍵
SQL Server中可以以UniqueIdentifier數據類型選取SQL Server主鍵,下面就將為您介紹如何使用UniqueIdentifier選取SQL Server主鍵,供您參考。
SQL Server為我們提供了UniqueIdentifier數據類型,并提供了一個生成函數NEWID( ),使用NEWID( )可以生成一個***的UniqueIdentifier。UniqueIdentifier在數據庫中占用16個字節(jié),出現重復的概率非常小,以至于可以認為是0。我們經常從注冊表中看到類似{45F0EB02-0727-4F2E-AAB5-E8AEDEE0CEC5}的東西實際上就是一個UniqueIdentifier,Windows用它來做COM組件以及接口的標識,防止出現重復。在.NET里管UniqueIdentifier稱之為GUID(Global Unique Identifier)。在C#中可以使用如下命令生成一個GUID:
GUID u = System.Guid.NewGuid();
對于上面提到的Order與OrderDetail的程序,如果選用UniqueIdentifier作為SQL Server主鍵的話,我們完全可以避免上面提到的增加網絡 RoundTrip的問題。通過程序直接生成GUID填充主鍵,不用考慮是否會出現重復。
UniqueIdentifier 字段也存在嚴重的缺陷:首先,它的長度是16字節(jié),是整數的4倍長,會占用大量存儲空間。更為嚴重的是,UniqueIdentifier的生成毫無規(guī)律可言,要想在上面建立索引(絕大多數數據庫在主鍵上都有索引)是一個非常耗時的操作。有人做過實驗,插入同樣的數據量,使用 UniqueIdentifier型數據做主鍵要比使用Integer型數據慢,所以,出于效率考慮,盡可能避免使用UniqueIdentifier型數據庫作為主鍵鍵值。
【編輯推薦】