Post rápido, só para esclarecer a dúvida de um desenvolvedor.

A dúvida era sobre o Count(1)xCount(PK)xCount(*), se realmente tem diferença estes comandos.

Vamos criar um ambiente de teste:
CREATE table Cliente
(
   Codigo int identity(1,1) primary key,
   Nome varchar(50)
)
GO

insert into Cliente values(NEWID())

GO 100000

Agora vamos testar, mas vale lembrar que antes da execução de cada comando deve limpar o cache, com os comandos DBCC DROPCLEANBUFFERS e DBCC FREEPROCCACHE

select COUNT(1) from cliente
select COUNT(Codigo) from cliente
select COUNT(*) from cliente

Muitos desenvolvedores utilizam o count(1) e insistem que Ă© a melhor forma.

Analisando o resultado vemos que apesar de especificar formas diferentes, o SQL sempre interpreta como Count(*) e todos tem o mesmo custo.