我有一個Sql-Server-2008數據庫,我正在查詢超過3000萬條記錄(喜悅!)。不幸的是,這個數據庫不能徹底改變,因爲它仍然用於R/D。SQL查詢緩慢,按日期排序表?
當我從這個數據庫查詢時,它需要FOREVER。我的意思是,我沒有耐心等待結果(爲了避免鎖定R/D部門,2分鐘後我必須取消)。即使我使用短日期範圍(超過幾個月),基本上也不可能從中得到任何結果。我正在查詢4列的需求,不幸的是必須使用另一個表的內聯接(我已經被告知在查詢效率方面非常昂貴 - 但它是不可避免的)。這個內部連接的表格少於100k條目。
我想知道的是,是否可以組織表使其默認按日期排序以減少搜索結果的數量?
如果這是不可能的,有什麼我可以做的,以減少查詢時間?有沒有其他有用的信息可以幫助我提出解決方案?
我已經包括了查詢的樣本,我使用:
SELECT DISTINCT N.TestName
FROM [DalsaTE].[dbo].[ResultsUut] U
INNER JOIN [DalsaTE].[dbo].[ResultsNumeric] N
ON N.ModeDescription = 'Mode 8: Low Gain - Green-Blue'
AND N.ResultsUutId = U.ResultsUutId
WHERE U.DeviceName = 'BO-32-3HK60-00-R'
AND U.StartDateTime > '2011-11-25 01:10:10.001'
ORDER BY N.TestName
任何幫助或建議表示讚賞!
您需要一個解釋計劃,或者至少讓我們知道索引了哪些字段。 – 2012-01-10 22:30:43
您是否有索引或您正在訂購的字段上的任何內容,包括TestName? – msarchet 2012-01-10 22:38:38