2014-10-08 153 views
0

我正在使用LINQ在含有2000萬行的數據庫表上對DateTime比較(在開始和結束DateTime之間)的查詢進行比較。該表具有一個主鍵,該主鍵是int類型的自動增量Id。沒有其他的鑰匙。如何在SQL Server中加速DateTime比較查詢

目前查詢需要5分鐘以上才能提取30分鐘的數據。隨着表格變大,查詢變得越來越慢。

是否有任何明顯的數據庫模式更改,我可能會顯着提高這些查詢的性能,並穩定它們隨着表的不斷增長?

分區會幫助嗎?或者可能使DateTime字段成爲關鍵字?

+5

日期字段上的索引? – 2014-10-08 01:28:53

+0

@ProfNimrod:打開http://google.com並放入「sql server如何添加索引」。每次**之前都會**請問 – zerkms 2014-10-08 01:37:17

+1

分區會產生巨大的差異。因此根據日期列分區。我爲類似的表格做了6000多萬條記錄 – Recursive 2014-10-08 06:08:53

回答

2

如果您需要對ID字段進行排序或額外查找,請在日期字段中放置索引,包括ID字段。這就是INDEX的目的,加快查找,排序等。看看這篇文章的更多解釋:SQL Server Index Design Guide(technet.microsoft.com)。

+0

非常感謝 - 我的典型查詢現在從5下降+分鐘到幾秒鐘,隨着數據庫的不斷增長,可能會保持穩定。我在SQL 101中的第一課:如果你要經常過濾某些領域,可以考慮在它們上面建一個索引。 – ProfNimrod 2014-10-08 12:55:30