改进 SQL 服务器 SELECT 在 table 中有很多记录

Improve SQL Server SELECT in table with many records

我的 SQL 服务器数据库中有一个 table,大约有 270.000 条记录,我需要尽快完成 SELECT,但我不知道该怎么做它或开始寻找什么。

这是我的 table 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

这个数据库是一个在线测试,这个table记录了每个参与者的所有答案,以供进一步参考。

我的问题是在测试结束时,我必须执行此咨询以给他答案,但我在最后一部分遇到了一些问题,我无法将此分配给他,我猜问题是我的 table 尺码。

在我的测试中,我的咨询时间不超过 1 秒,但我无法在所有情况下对其进行测量(例如连接速度慢或超时)

这是您的查询:

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);