如果您爲主鍵使用一種數據類型而不是另一種數據類型,那麼性能是否會受到影響?主鍵數據類型是否影響性能? SQL Server 2008
我有一個很大的數據庫,會經常查詢,但只寫入一年一次。如果我提供一個增量主鍵(整數)或者讓SQL Server爲它提供一個GUID,它會有什麼關係嗎?
如果您爲主鍵使用一種數據類型而不是另一種數據類型,那麼性能是否會受到影響?主鍵數據類型是否影響性能? SQL Server 2008
我有一個很大的數據庫,會經常查詢,但只寫入一年一次。如果我提供一個增量主鍵(整數)或者讓SQL Server爲它提供一個GUID,它會有什麼關係嗎?
性能受到影響,特別是對於大量數據。
一般來說,使用最小的數據類型可以滿足您的需求(如果需要,您可以隨時使用更大的數據類型)。
當涉及到INT(4)
與UNIQUIDENTIFIER
,前者是更多更小,佔用更少的磁盤空間和更少的字節通過電線。這也意味着使用這種PK的索引將更小。當然,所有這些數據也需要適應內存,所以你越能適應內存越好。
有點什麼我想。將文本用作主鍵怎麼樣?像三個字母的文本代碼。那也應該是一個整數而不是文本?當它允許我接受答案時,謝謝。 – wootscootinboogie 2012-03-20 13:22:46
@DarrinCecil - 如果你知道它足夠了,'CHAR(3)'或'NCHAR(3)'可能是更好的選擇。 – Oded 2012-03-20 13:24:23
其中nchar(3)與int爲主鍵是我的意思。抱歉。這個數據庫將會非常大,大約5個演出(大約一百萬行的幾張桌子)。 – wootscootinboogie 2012-03-20 13:27:21
命中是關於**聚類鍵**(不是主鍵)。集羣密鑰被複制到表中的每個非聚集索引中。因此,如果桌面上有幾個NC指數,那麼是的 - 集羣密鑰的大小和屬性可能對您的PER具有**巨大**影響。在[Kimberly Tripp的優秀博客](http://www.sqlskills.com/BLOGS/KIMBERLY/category/Clustering-Key.aspx)閱讀所有內容 – 2012-03-20 13:40:37