我当前的子查询正在执行:运行26秒。我使用以下查询作为子查询作为另一个代码的一部分,一个月需要2分钟和25秒一个数据返回。
对此有更快的查询吗?当前procedureID包含字母和数字字符。我只想用数字字符开始处理ProcedureID。
SELECT DISTINCT
ProcedureID
FROM Transactions
WHERE Substring(ProcedureID,1,1) NOT LIKE '[A-z]%'
答案 0 :(得分:2)
在启用执行计划的情况下运行查询。这应该确定任何可能有帮助的索引。此外,如果添加一个1 char长的新列,并使用ProcedureID的第一个char填充并向该列添加索引,则在基于该列查询而不是substring()查询时应该获得更好的性能你用过了。
答案 1 :(得分:0)
试试这个: WHERE IsNumeric(子串(ProcedureID,1,1))= 1
如果您经常这样做,可能值得创建一个仅包含ProcedureID的第一个字符的计算列。