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.