我們在生產中遇到了一些繁重的表鎖問題。我注意到我創建了一個存儲過程,它通過訂單號獲取訂單列表。訂單號是一個VARCHAR(150)。本專欄沒有任何類型的索引。Varchar上的索引?
目前,這個列中有很多NULL值。然而,隨着時間的推移(最近這張桌子上線了),這張桌子將會顯着增長。此時不會再添加NULL值。
我的問題是兩倍。首先,這裏的指數會有好處。該過程大量使用。如果是這樣,它應該聚集還是不聚集?數據就像CP123456,DR126512一樣。
可能影響第一個問題的第二個問題是 - 將列更改爲CHAR(10)會有好處,因爲它似乎是訂單號總是相同的大小。將索引放在固定長度的CHAR上,而不是VARCHAR(150)有什麼好處?
(大小不同是因爲創建列時的未知要求)。
SQL Server 2008的
你當然可以在ms sql server中擁有非集羣主鍵。 – MatBailie