2012-11-15 5 views

답변

3

나는이에 확인하고, 내가 뭘보고하는 것입니다있다 sum(x) + sum(y)이 빠릅니다. 왜? sum 함수를 사용할 때 집계 함수로 작업하고 있습니다. 집계 할 때 null 값은 건너 뜁니다. 집계 함수에서 두 필드를 결합 할 때 프로세서는 필드 중 하나가 NULL인지 여부를 확인해야합니다. 세트는 값과 NULL을 모두 포함 할 수 있기 때문입니다. NULL을 추가하면 (또는 알 수없는 경우) 아무 것도 없으므로 NULL이됩니다. 따라서 각 레코드에 대해 확인해야합니다.

실행 계획을 살펴보고 컴퓨터 스칼라 연산자를 확인하면이 동작을 정확하게 볼 수 있습니다. sum(x) + sum(y) 메서드의 경우 예상 된 CPU 비용이 0,0000001인데 다른 메서드는 0,0000041까지 소요됩니다. 그건 좀 더! 당신이 더 자세히 살펴 봐야 할 때 또한, 당신은 sum(x + y) 그래서, 결국, sum(x) + sum(y)가 빠른 간주 될 수 [Expr1004] = Scalar Operator(CASE WHEN [Expr1006]=(0) THEN NULL ELSE [Expr1007] END)

같은 것을 할 것이라는 점을 확인할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 두 열이 모두 NULL이 아닌 경우 어떻게됩니까? –

+0

나는 이것을 시험해 보았고 같은 결론을 얻었다. sum (x) + sum (y)가 빠릅니다. 그러나 원하는 답이 좋다는 것을 확실히하십시오. 합계를하면 (x + y) 합산 (x) + 합계 (y)가됩니다. 하지만 이미 그 생각을했다고 생각합니다. –