有没有办法优化此 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
确实接受要添加的单位的缩写,但完整输入它会更清楚。
我有这个查询,我必须使用 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
确实接受要添加的单位的缩写,但完整输入它会更清楚。