为什么这个查询需要12秒,并且它包含完美的索引。
答案 0 :(得分:2)
当Where子句包含Like语句(例如你的)时,SQL Server不会(不能)使用索引。必须进行扫描。这是因为您告诉SQL Server您希望vch_EmailAddress在电子邮件地址中的任何位置包含“kala”的所有行。因此,不会使用正常索引。它必须扫描每一行并评估每个电子邮件地址。
如果要将Where子句更改为此类,则会(可能)使用索引。
where ea.vch_EmailAddress Like 'kala%' OPTION (RECOMPILE)