2016-01-15 30 views

回答

1

查看查詢的執行計劃。

很可能您會看到類似表/聚集索引掃描的內容,然後進行排序。這意味着你沒有建立在你的表的datadate字段上的索引 - 所以SQL服務器必須從表中檢索所有數據並對它進行排序以獲得最高1值。

如果您將在此列上創建索引,SQL Server將使用此索引而不是檢索所有數據並對其進行排序 - 因此它將大大提高性能。

1

創建clustered indexdatadate列應加快這一進程

CREATE CLUSTERED INDEX AA011_datadate ON AA011(datadate DESC) 
+0

我已經在datadate列上創建聚簇索引,所以我必須在datadate上使用非聚簇索引? –

+0

與聚集索引一起去,因爲數據是按索引順序物理存儲的 –

+1

@MohanSingh它取決於你的表結構和它的用法。通常,在自動增量ID /主鍵字段以外的字段上使用聚簇索引並不是一個好主意。聚集索引定義數據的物理存儲順序,所以對於'datadate'上的聚簇索引,如果您將表中的記錄插入到不是'datadate'的順序中--SQL服務器每次都會使用整個表,所以它可以降低插入的性能。 –