有没有办法优化这个 SQL 查询?

Sys*_*rus 1 sql t-sql sql-server sql-optimization

我有一个必须使用 AWS Lambda 自动执行的查询,但首先我想对其进行优化。

这对我来说似乎是合法的,但我有这种感觉我可以做一些事情来改进它。

SELECT q_name, count(*)
FROM myTable
WHERE status = 2
AND DATEDIFF(mi, create_stamp, getdate()) > 1
GROUP BY q_name
Run Code Online (Sandbox Code Playgroud)

Dal*_*e K 9

我能看到的唯一改进是不要将函数应用于您的列,因为这会使查询无法控制(无法使用索引)。相反,让色谱柱保持原样并计算正确的截止值。

SELECT q_name, count(*)
FROM myTable
WHERE [status] = 2
--AND DATEDIFF(mi, create_stamp, getdate()) > 1
-- Adjust the logic to meet your requirements, because this is slightly different to what you had
AND create_stamp < DATEADD(minute, -1, getdate())
GROUP BY q_name;
Run Code Online (Sandbox Code Playgroud)

请注意,虽然dateadd接受要添加的单位的缩写,但完整输入会更清晰。