>데이터 베이스 >MySQL 튜토리얼 >SQL Server의 Count(*) 대 Count(1): 성능에 영향을 줍니까?

SQL Server의 Count(*) 대 Count(1): 성능에 영향을 줍니까?

DDD
DDD원래의
2025-01-23 18:38:14697검색

Count(*) vs. Count(1) in SQL Server: Does it Impact Performance?

*SQL Server의 COUNT()와 COUNT(1)의 성능 차이: 심층 분석**

많은 개발자는 SQL Server 2005에서 COUNT(1)를 사용하는 것이 COUNT(*)보다 나은지에 대해 우려하고 있습니다. 이 기사에서는 이 문제를 자세히 조사하고 그 이유를 설명합니다.

결론: 성능 차이 없음

통념과는 달리 COUNT(1)과 COUNT(*) 사이에는 큰 성능 차이가 없습니다. 둘 다 행 계산 측면에서 동일한 결과를 생성합니다.

원인: SQL Server의 최적화 프로그램

SQL Server의 최적화 프로그램은 COUNT(1)과 COUNT(*)가 모두 동일한 정보를 반환한다는 것을 인식하고 그에 따라 최적화합니다. 옵티마이저는 이 두 함수를 사소한 작업으로 처리합니다. 이는 표현식 평가가 매우 간단하고 성능에 영향을 미치지 않음을 의미합니다.

다음 쿼리를 고려해 보세요.

<code class="language-sql">SELECT COUNT(1) FROM dbo.tab800krows
SELECT COUNT(1), FKID FROM dbo.tab800krows GROUP BY FKID

SELECT COUNT(*) FROM dbo.tab800krows
SELECT COUNT(*), FKID FROM dbo.tab800krows GROUP BY FKID</code>

두 쿼리 세트 모두 입력/출력(IO) 및 실행 계획이 동일합니다. 이는 SQL Server 최적화 프로그램이 COUNT(1)과 COUNT(*)의 동일성을 인식함을 증명합니다.

요약

요약하자면, COUNT(1)을 사용해도 SQL Server 2005의 COUNT(*)에 비해 어떤 성능 이점도 제공되지 않습니다. 데이터베이스 시스템은 두 기능을 모두 최적화하여 동일한 결과를 생성합니다. 따라서 개발자는 성능 문제에 대한 걱정 없이 원하는 구문을 선택할 수 있습니다.

위 내용은 SQL Server의 Count(*) 대 Count(1): 성능에 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.