我创建了一个计算列,即检查cs_file = (checksum([date],[file_name]))
此列用于搜索特定日期的文件是否已存在(使用校验和来提高性能)。
选择代码:
select * from files where cs_file = checksum(@date,@filename) and date = @date and @filename = filename
该列已编入索引。保持计算列的持久性会改善性能吗? 桌子不是太大。插入其中的数据大约是每天250行。
答案 0 :(得分:0)
持久列与非持久列之间的性能没有差异。
但是,我几乎不相信你需要它,一个复合索引(date,file_name)或反过来,取决于选择性,应该足够了。
我建议在会话中激活SET STATISTICS IO ON
选项,并在执行带有和不带有计算列索引的查询之后,使用和不带索引(date,file_name)检查逻辑读取。越少越好:)