有没有办法优化此 SQL 查询?

Is there a way to optimize this SQL query?

我有这个查询,我必须使用 AWS Lambda 自动执行,但首先我想优化它。

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

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

我能看到的唯一改进是不对您的列应用函数,因为这会使查询不可优化(无法使用索引)。而是保留该列并计算正确的截止值。

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;

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