Jag försökte några SELECT COUNT(*) FROM MyTable kontra SELECT COUNT(SomeColumn) FROM MyTable med olika storlekar på tabeller och där SomeColumn en gång är en klustringsnyckelkolumn, en gång är den i ett icke-klustrad index och en gång finns det inget index alls.
I alla fall, med alla storlekar på tabeller (från 300 000 rader till 170 miljoner rader), ser jag aldrig någon skillnad i termer av antingen hastighet eller utförandeplan - i alla fall, COUNT hanteras genom att göra en klustrad indexskanning --> d.v.s. skanna hela tabellen, i princip. Om det finns ett icke-klustrat index inblandat, är skanningen på det indexet - även när du gör en SELECT COUNT(*) !
Det verkar inte vara någon skillnad vad gäller hastighet eller tillvägagångssätt hur dessa saker räknas - för att räkna dem alla behöver SQL Server bara skanna hela tabellen - punkt.
Tester gjordes på SQL Server 2008 R2 Developer Edition