我有一個刪除查詢,每天需要運行刪除大於7天的約600萬條記錄的任何數據。SQL Server 2005刪除查詢SLOW
我的表格應該只存儲最近7天的數據。
這裏是我運行查詢:
DELETE FROM [tblTSS_DataCollection]
Where [DatapointDate] < DATEADD(D, -7, GETDATE())
這個查詢需要5.5分鐘執行。我有一個索引設置,包括這個,所以我不認爲它應該採取這一長期執行:
CREATE UNIQUE NONCLUSTERED INDEX [IX_tblTSS_DataCollection] ON [dbo]. [tblTSS_DataCollection]
(
[DataPointID] ASC,
[DatapointDate] ASC,
[AssetID] ASC
)
有沒有更好的方式來刪除這些數據?這需要永遠,我真的需要能夠快速刪除這些數據。
事實上,建立索引正在放慢速度,因爲它也必須從索引中刪除。此外,如果您有FK關係,請確保它們不是級聯的。嘗試以較小的塊刪除,例如一次刪除1000條記錄。 – Dimitri
我必須有索引,因爲我也查詢這個數據,以及顯示在圖表 –
我明白這一點。不是說要刪除它,但它確實沒有幫助DELETE – Dimitri