对where子句中的非索引列的函数调用将影响性能

时间:2018-06-06 06:01:31

标签: sql sql-server sql-server-2008

据我所知,如果我们在where子句的索引列上使用函数调用,SQL服务器引擎将忽略该索引并执行扫描操作而不是搜索。

我需要明白, 函数调用where子句中的非索引列会影响性能吗?

1 个答案:

答案 0 :(得分:0)

对非索引列的函数调用只会影响函数调用本身的开销。对该列进行函数调用不能排除使用首先不存在的索引。

你说:

  

SQL服务器引擎将忽略该索引并执行扫描操作而不是搜索。

稍微纠正一下,SQL Server不支持基于函数的索引(尽管Oracle和其他一些数据库都支持)。在SQL Server中,如果需要基于函数的索引,可以使用实例化视图进行解决。