FROM MYTABLE WHERE (FIELD1='firstFieldValue' OR FIELD1='' or 'firstFieldValue'='');我用下面的参数化SQL创建了一个预准备语句:
SELECT FIELD1, FIELD2 FROM MYTABLE WHERE (FIELD1=?我认为预准备语句SQL</
经过几个小时的努力,我终于发现这样一个事实:当我用参数运行SQL语句时,它很快就会返回,但当我用硬编码的值运行它时,它却花费了很长时间。我假设sp_executesql在执行查询之前将@Cat参数作为硬编码值插入到查询中,从而重现与非参数化查询相同的问题。当我向慢查询添加一个表提示以使用该索引时,它修复了这个问题,例如:FROM MyTable a WITH (INDEX(IX_MyIndex_3))
WHERE a.MyColumn= 'Ginger