views:

243

answers:

4

Structure of Example table:

Id, Integer (PK)
Name, Varchar(100)
Description, Text

I need to know if exists difference in performance between:

SELECT COUNT(*) FROM Example;

and

SELECT COUNT(Id) FROM Example;

Or does not exists differences?

A: 

Check the explain plan: does the result come from the table or from meta data (e.g. INFORMATION_SCHEMA)?: The differences are likely to be very minimal.

davek
+4  A: 

Differences exist in both performance and the actual resultset

http://stackoverflow.com/questions/1747990/performance-of-count-sql-function

David Hedlund
since id is the PK, it is (hopefully!) unlikely it will contain NULLs, which I think is the main difference in results.
davek
Thank you, I did not find this question.
Cesar
A: 

I would believe that there is a difference; depending on the size of your table, it could be negligible, or it could be significant.

This is probably the slowest: SELECT COUNT(*) FROM Example
This is in the middle: SELECT COUNT(Id) FROM Example
This would be fastest: SELECT COUNT(1) FROM Example

Jim B
Also depends on what you want to count. Id will probably never be null (if you're doing it right), but count(*) will count only rows with no nulls for example.
tsilb
A: 

Worth reading, but unfortunately in russian.

COUNT(*), could it be faster?

Short story is that COUNT(*) is not so efficient as direct access to the dm_db_partition_stats.

Mike Chaliy