2013-02-13 2 views
2

쿼리 최적화를 위해 Count (*)와 Count (1)의 차이점을 알고 싶습니다. 그것에 관해서는 oracle에 해당하는 Ask Tom을 발견했으며 실행을 위해 소요 된 시간면에서 모두 동일하다고 말했습니다.Sql Server 2008에서 Count (*) 및 Count (1)을 사용하는 경우

  1. 이 또한 SQL Server 2008에도 적용됩니까?
  2. 그렇다면 왜 동일한 diff 함수가 두 개 있습니까?
  3. 더 나은 최적화를 위해 사용할 수없는 경우?
  4. 우리가 카운트 (1) 및 그-A-구절

답변

2

COUNT (*)을 통해 카운트 (*)를 사용합니다 어떤 경우는 COUNT(1)와 같은 존재입니다. 현실은 “*”이 실제로는 기본 옵션이므로 지정하지 않아도됩니다. Count(*)에는 NULL이 아닌 모든 값이 포함됩니다. COUNT 함수에서 열 이름이나 상수를 사용하는 경우 NULL이 아닌 값을 줄 것입니다.

-1

동일해야합니다. COUNT "COUNT ({ [ [ ALL | DISTINCT ] expression ] | * })"의 정의에 따라 1은 널이 아닌 표현으로 처리됩니다.