SQL子字符串子查询占用太长时间

时间:2017-08-11 18:16:57

标签: sql sql-server return substring numeric

我当前的子查询正在执行:运行26秒。我使用以下查询作为子查询作为另一个代码的一部分,一个月需要2分钟和25秒一个数据返回。

对此有更快的查询吗?当前procedureID包含字母和数字字符。我只想用数字字符开始处理ProcedureID。

SELECT DISTINCT
ProcedureID
FROM Transactions
WHERE Substring(ProcedureID,1,1) NOT LIKE '[A-z]%'

2 个答案:

答案 0 :(得分:2)

在启用执行计划的情况下运行查询。这应该确定任何可能有帮助的索引。此外,如果添加一个1 char长的新列,并使用ProcedureID的第一个char填充并向该列添加索引,则在基于该列查询而不是substring()查询时应该获得更好的性能你用过了。

答案 1 :(得分:0)

试试这个:     WHERE IsNumeric(子串(ProcedureID,1,1))= 1

如果您经常这样做,可能值得创建一个仅包含ProcedureID的第一个字符的计算列。