Você pode ver uma melhoria em um índice com apenas 10 linhas.
No teste a seguir na minha máquina, a versão sem um índice concluída em 10.5
segundos e a versão com um índice em 9.8
segundos (consistente em 3 execuções).
O índice, nesse caso, consiste apenas em 1 página folha, mas, como a matriz de slots é ordenada em ordem de chave de índice, sua presença permite que o SQL Server retorne apenas a única linha de interesse em vez de realizar uma agregação em todas as 10.
CREATE TABLE T
(
X INT,
Y CHAR(100) NULL
)
INSERT INTO T (X)
SELECT number
FROM master..spt_values
WHERE type='P' AND number BETWEEN 1 AND 10
set nocount on;
DECLARE @I INT, @X INT
DECLARE @Time DATETIME2(7) = SYSUTCDATETIME()
SET @I = 1
WHILE (@I < 1000000)
BEGIN
SELECT @X = MAX(X)
FROM T
SET @I += 1
END
SELECT DATEDIFF(MICROSECOND, @Time, SYSUTCDATETIME())
CREATE CLUSTERED INDEX IX ON T(X)
SET @Time = SYSUTCDATETIME()
SET @I = 1
WHILE (@I < 1000000)
BEGIN
SELECT @X = MAX(X)
FROM T
SET @I += 1
END
SELECT DATEDIFF(MICROSECOND, @Time, SYSUTCDATETIME())
DROP TABLE T