据我所知,如果我们在where子句的索引列上使用函数调用,SQL服务器引擎将忽略该索引并执行扫描操作而不是搜索。
我需要明白, 函数调用where子句中的非索引列会影响性能吗?
答案 0 :(得分:0)
对非索引列的函数调用只会影响函数调用本身的开销。对该列进行函数调用不能排除使用首先不存在的索引。
你说:
SQL服务器引擎将忽略该索引并执行扫描操作而不是搜索。
稍微纠正一下,SQL Server不支持基于函数的索引(尽管Oracle和其他一些数据库都支持)。在SQL Server中,如果需要基于函数的索引,可以使用实例化视图进行解决。