首先,我瞭解主鍵在SQL中的表或任何數據庫中的作用。我應該在用戶定義表類型上使用主鍵嗎?
然而,當涉及到用戶定義的表類型,我發現自己無法看到我爲什麼要創建一個主鍵。根據我的經驗,我發現他們沒有性能優勢,但我懷疑我的發現可能來自我對它們的一般用法和有限的經驗,而不是一個更有經驗的觀點。
例如,我一般使用表值參數爲插入/更新程序,或者通過在創建選擇查詢中使用的值的陣列。我發現他們沒有性能上的好處,如果有什麼我經歷了一個小的性能下降(但我們最多談的是10毫秒,所以它幾乎可以忽略不計)。
我應披露它們內部傳遞的任何數據已經被清洗/小心翼翼有序,所以有可能,我沒有看到好處,由於這一點,但我不容易知道的方式。再次
的問題因此,我應該有我的用戶定義的表類型的主鍵或只是不那麼重要嗎?
道歉,如果這是重複的。我做了大量的搜索,但後來我可能會使用錯誤的關鍵字組合。
您的見解將永遠將不勝感激。
由於必須構建聚簇索引,因此性能下降很小。如果數據是預先訂購的,並且您不會對數據執行選擇性查詢,那麼索引只是浪費資源。如果你不想在集合上強加新的順序,或者反覆調用對集合的選擇性查詢,那麼將從索引中受益,並且如果集合足夠大,則值得創建聚集索引以及潛在的其他非集羣indecies。 – Jodrell
@Jodrell,謝謝,這很有道理。由於一些瘋狂的原因,我沒有考慮構建聚簇索引的開銷!我也很高興知道,我對預先訂購的數據的假設是準確的。 –