我有一個表Employees
其中包含約11000行數據。其中一列是Location
,在此欄內有不同類型的位置,例如美國,法國,英國。我在位置列上創建了聚集索引。我也創建了此表的視圖。我應該索引一列或將其拆分到不同的視圖SQL
我將創建一個使用此視圖的MVC項目。我想知道的是,我應該創建不同的視圖,每個視圖與位置分開,還是聚簇索引足以提高性能?或者我應該這樣做?
在我看來,較小的視圖會提高性能,因爲在項目中它允許按位置進行搜索,而不是通過搜索巨大視圖來搜索較小的視圖。
我有一個表Employees
其中包含約11000行數據。其中一列是Location
,在此欄內有不同類型的位置,例如美國,法國,英國。我在位置列上創建了聚集索引。我也創建了此表的視圖。我應該索引一列或將其拆分到不同的視圖SQL
我將創建一個使用此視圖的MVC項目。我想知道的是,我應該創建不同的視圖,每個視圖與位置分開,還是聚簇索引足以提高性能?或者我應該這樣做?
在我看來,較小的視圖會提高性能,因爲在項目中它允許按位置進行搜索,而不是通過搜索巨大視圖來搜索較小的視圖。
集羣或類似的東西是用於巨大的表格,比如說數以億計的行。有了11000行,sql server會很好,通常甚至沒有索引。 現在,如果您真的擔心表現問題,請爲您通常搜索的列添加索引,例如您的位置。
此外,它可能是一個很好的做法,有另一個表存儲位置,然後只有該表的外鍵。
這個行數不佳的一個原因可能是你有很大的行,例如大的nvarchar
s,或者你有大的二進制數據(它不會存儲在行中,所以不會減慢搜索),但正在與其他數據一起提取。例如,如果您從數據庫中拉出100個項目,並且每個項目都有4MB圖像,則您需要花費400MB的時間。
將視圖分割成基於位置的視圖會好嗎?或者是索引位置列足夠好?或者我應該這樣做?我的主要目標是獲得最佳表現。 – WobotCode
每個功能都有其自身的性能開銷。分區適用於非常大的數據集,因此其性能開銷可能相當高。對於幾萬行的表格,一個好的設計將會產生良好的性能,具有小的行數(標準化表格,將大量數據(如圖像到其他表格等)),僅提取您的信息需要(例如,如果您只顯示項目列表,則不會獲取僅在其他頁面中顯示的大型描述),並最終創建索引。除非你參加比賽,否則可以獲得足夠好的表現。 – Alireza