집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 COUNT(*)가 느린 이유는 무엇이며 속도를 높이는 방법은 무엇입니까?
SQL 개수(*) 성능 이해
행이 2천만 개가 넘는 테이블에 대해 개수 연산을 실행하는 쿼리를 생각해 보겠습니다. 실행 시간은 카운트 표현식에 따라 크게 달라지며, 비교가 필요한 표현식(예: count(*) = 1)의 경우 상당한 지연이 발생합니다.
느린 실행의 근본 원인
이러한 성능 차이에 대한 설명은 SQL Server에서 사용하는 최적화 기술에 있습니다. 첫 번째 쿼리(count() = 0)의 경우 서버는 이를 계산하는 대신 모든 행(존재(BookChapters에서 선택))이 있는지 확인하도록 쿼리를 최적화합니다.
In 대조적으로, 다른 쿼리(count() = 1 또는 count() > 1)의 경우 SQL Server는 비클러스터형 인덱스를 사용하여 행 수를 세어보세요. 그러나 이 경우 테이블에는 비클러스터형 인덱스가 없기 때문에 서버가 테이블 전체를 스캔해야 하므로 실행 시간이 상당히 길어집니다.
성능 개선
count(*) 쿼리 성능 향상:
빠른 행 수 계산을 위한 대체 방법
위 내용은 SQL Server에서 COUNT(*)가 느린 이유는 무엇이며 속도를 높이는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!