我有一個永遠不會更新並很少插入的表。我需要優化這個表來快速查詢日期列和nvachar(32)。日期列上的SQL查詢優化
我正在給表格添加索引,我不確定是否最好將性能分割成不同的列,例如:年,月,日的單獨列或者按照原樣離開日期列。
查詢基本上在nvarchar列和年份列中,或者可能包括年份,月份和日期。
我實際上做的是運行在一個姓列SOUNDEX條款和日期列
例如例如:
SELECT DISTINCT [Surname]
FROM [dbo].[sometable]
WHERE YEAR(Datecolumn) = 2011 AND SOUNDEX(Surname) = SOUNDEX('smith')
什麼是最好的表現?
我輸入完全相同的答案。你可以使用「之間」,因爲我認爲它更好。你應該檢查執行計劃,以確保你有適當的索引,並且它會實際使用它。 – 2013-03-01 12:27:59
感謝您的建議,我現在正在測試。你確定應用了一個函數,例如YEAR(DateColumn)= 2011意味着索引無用。這是依賴於數據庫技術,因爲我正在使用SQL Server 2008,並且在執行計劃中似乎使用日期列上的索引,即使我正在將年份功能應用到它上面? – 2013-03-01 14:04:16