计算列校验和是否持续存在?

时间:2014-04-11 07:55:11

标签: sql-server tsql

我创建了一个计算列,即检查cs_file = (checksum([date],[file_name])) 此列用于搜索特定日期的文件是否已存在(使用校验和来提高性能)。 选择代码:

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

该列已编入索引。保持计算列的持久性会改善性能吗? 桌子不是太大。插入其中的数据大约是每天250行。

1 个答案:

答案 0 :(得分:0)

持久列与非持久列之间的性能没有差异。

但是,我几乎不相信你需要它,一个复合索引(date,file_name)或反过来,取决于选择性,应该足够了。

我建议在会话中激活SET STATISTICS IO ON选项,并在执行带有和不带有计算列索引的查询之后,使用和不带索引(date,file_name)检查逻辑读取。越少越好:)