2014-04-11 143 views
0

我創建了一個計算列,即檢查cs_file = (checksum([date],[file_name])) 此列用於搜索特定日期的文件是否已經存在(使用校驗和來提升性能)。 選擇代碼:計算列校驗和是否存在?

select * from files where cs_file = checksum(@date,@filename) and date = @date and @filename = filename 

該列已建立索引。將計算列保持不變可提高性能? 表不是太大。插入其中的數據每天大約有250行。

回答

0

保持與未保持列的索引之間的性能沒有差別。

但是,我幾乎不相信你完全需要它,(date,file_name)上的複合索引或其他方式取決於選擇性就足夠了。

我建議在會話中激活SET STATISTICS IO ON選項,並且在計算列上執行帶有和沒有索引的查詢並且在(日期,文件名)的索引和沒有索引的情況下檢查邏輯讀取。少就是好:)