2009-11-17 3 views
3

구조 :는 SQL COUNT 성능 질문

SELECT COUNT(*) FROM Example; 

SELECT COUNT(Id) FROM Example; 

또는 차이가 존재하지 않습니다 내가 사이의 성능 차이가 존재하는지 알 필요가

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

?

답변

2

차이가 성능과 실제 결과 집합 모두에 존재

Performance of COUNT SQL function

+1

ID가 PK이기 때문에 NULL을 포함 할 가능성은 희박합니다. 결과에서 주요 차이점이라고 생각합니다. – davek

+0

감사합니다. 나는이 질문을 찾지 못했습니다. – Cesar

+0

@davek -'id'는 PK이므로 null을 포함 할 수 없습니다. 이 대답은 정확하지 않습니다. 성능과 결과는 동일합니다. –

0

설명 플랜을 확인하십시오. 결과는 테이블 또는 메타 데이터 (예 : INFORMATION_SCHEMA)에서 발생합니까? : 차이점은 매우 미미합니다.

0

나는 차이가 있다고 생각 것이다; 테이블의 크기에 따라 무시해도 좋을 수도 있고 중요 할 수도 있습니다. 이것은 중간에 예
FROM SELECT COUNT (*) :이 빠른 것 예
로부터 SELECT COUNT (ID) :

이 아마 가장 느린입니다 SELECT COUNT (1) 예

FROM
+0

또한 계산할 항목에 따라 다릅니다. Id가 null 일 가능성은 거의 없지만 count (*)는 null이없는 행만 계산합니다. – tsilb

0

읽을만한 가치가 있지만 러시아에서는 불행히도.

COUNT(*), could it be faster?

짧은 이야기는 COUNT(*)dm_db_partition_stats에 직접 액세스 할 수 있도록 효율적으로되지 않는 것입니다.