我的SQL Server数据库中有一个表有大约270.000条记录,我需要尽可能快地使SELECT
,但我不知道如何做或者开始寻找什么。
这是我的表Resultado
:
resultadoID (PK, int)
participanteID (FK, int)
perguntaID (FK, int)
tipo (nvarchar(5))
valida (int)
这是我的SELECT
查询:
SELECT
participanteID, tipo,
COUNT(valida) as validas
FROM
Resultado
WHERE
valida = 1
AND participanteID = {ID}
GROUP BY
participanteID, tipo
此数据库是在线测试,此表记录了每个参与者的所有答案,以供进一步咨询。
我的问题是在测试结束时我必须执行此咨询以给出他的答案,但我在最后一部分遇到了一些问题,我无法指定他这一点,而我&#39 ;我猜这个问题是我的桌子大小。
在我的测试中,我的咨询时间不超过1秒,但我无法在所有情况下进行测量(例如连接速度慢或超时)
答案 0 :(得分:2)
这是您的查询:
SELECT participanteID, tipo, COUNT(valida) as validas
FROM Resultado
WHERE valida = 1 AND participanteID = {ID}
GROUP BY participanteID, tipo
此查询的最佳索引位于resultado(valida, participanteId, tipo)
:
create index resultado_valida_partipanteId_tipo on resultado(valida, participanteId, tipo);