Suena como un escenario ideal para una vista indizada, que le permite pagar los cálculos y los agregados en el momento de la escritura en lugar del tiempo de consulta.
CREATE VIEW dbo.MyIndexedView
WITH SCHEMABINDING
AS
SELECT Enroll_Date, UserID, RawCount = COUNT_BIG(*)
FROM dbo.UserTable
GROUP BY Enroll_Date, UserID;
GO
CREATE UNIQUE CLUSTERED INDEX CIX_miv ON dbo.MyIndexedView(Enroll_Date, UserID);
Eso tomará un tiempo en crearse y, por supuesto, requerirá mantenimiento en todas las operaciones DML, al igual que un índice en la tabla base.
Ahora, la consulta en esta vista sería bastante similar: cada fila de la vista ahora representa un combo de usuario / fecha distinto, por lo que esa cifra se puede calcular con un solo COUNT (*), mientras que el número total de filas en la tabla base es ya está parcialmente agregado para usted, ahora solo necesita agregarlos usando SUMA por fecha:
SELECT Enroll_Date,
[Record #] = SUM(RawCount),
[User #] = COUNT(*)
FROM dbo.MyIndexedView WITH (NOEXPAND)
GROUP BY Enroll_Date;
Sugerencia NOEXPAND agregada, después de recordar esto y esto .
Puedo decirle sin lugar a dudas que esta consulta será más rápida que su consulta actual (pero no por cuánto), excepto en el raro caso en que tenga exactamente un usuario para cada fecha (en cuyo caso la misma cantidad de datos tendrá para leer) y las columnas que conocemos son las únicas columnas en el índice de la tabla base. Si ese aumento de rendimiento en el momento de la lectura vale la pena el trabajo extra que afectará la parte de escritura de su carga de trabajo es algo que no podemos decirle: tendrá que probarlo para medir la compensación (no hay índice libre).
Y si usa con frecuencia las mismas cláusulas WHERE comunes contra Enroll_Date para rangos específicos y bien definidos (por ejemplo, el trimestre actual o el año hasta la fecha), podría agregar índices filtrados coincidentes que reduzcan aún más esa E / S (pero siempre hay un compensación).
También puede considerar poner un índice agrupado en la tabla base. Este no parece ser uno de esos casos de uso muy raros que se benefician de un montón.