改进包含许多记录的表中的SQL Server SELECT

时间:2015-02-06 12:44:44

标签: sql sql-server sql-server-2012

我的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秒,但我无法在所有情况下进行测量(例如连接速度慢或超时)

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