나는 또한 합계 된 2 개의 필드의 합계를 수행해야합니다. 먼저 필드를 추가하는 것과 열을 합한 후에 성능 관점에 차이가 있습니까? 방법 1 = SELECT SUM (COLUMNA + COLUMNB) 방법 2 = SELECT SUM (COLUMNA) + SUM (COLUMNB) (환경 = SQL 서버 2008 R2)TSQL에서 SUM (A + B) 대 SUM (A) + SUM (B) 사이에 성능 차이가 있습니까?
2
A
답변
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)
같은 것을 할 것이라는 점을 확인할 수 있습니다.
관련 문제
- 1. SUM (a * b)의 기능은 무엇입니까?
- 2. MySQL : 단일 열 SUM (IF (cond, a, b)) vs muti-column Sum()
- 3. A == B 대 B == A, 차이점은 무엇입니까
- 4. PHP 문자열 연결 - "$ a $ b"와 $ a. "". $ b - 성능
- 5. SUM
- 6. SUM
- 7. 파이썬의 Sum()
- 8. SQL select sum with sum
- 9. C# 배열 [a, b, c] 대 배열 [a] [b] [c]?
- 10. [A, B]] 중 하나에 [A, Iterable [B]]
- 11. [A] (B)와 일치 함 [A] (B)
- 12. Regex a : b c d a : b
- 13. matlab sum vectors
- 14. SQL SUM 여러 열 - 성능
- 15. SSRS 변수 식 - Sum, Sum, Scope?
- 16. (a | b)가 a - (a & b) + b와 같은 이유는 무엇입니까?
- 17. 파이썬, sum() 문제
- 18. SELECT SUM()
- 19. SUM() MySQL의
- 20. "a/b/c"를 [ "a/b/c", "a/b", "a"]로 변환하는 가장 쉬운 방법
- 21. 스핑크스, SUM (@weight)/@ 수
- 22. 하나의 선택에서 sum()을 사용할 수 있습니까?
- 23. 두 간격 사이에 난수 생성 [a, b]
- 24. SUM 함수는 SQL에서 작동하지
- 25. 두 SUM 쿼리 함께
- 26. 사용 sum 함수
- 27. PHP Sum 함수는
- 28. T-SQL COUNT of 'A', 'B', 'A or B'
- 29. 고유 한 열 쌍을 A, B 또는 B, A
- 30. matlab에 VS 파이썬 - EIG (A, B) sc.linalg.eig VS (A, B)
답변 해 주셔서 감사합니다. 두 열이 모두 NULL이 아닌 경우 어떻게됩니까? –
나는 이것을 시험해 보았고 같은 결론을 얻었다. sum (x) + sum (y)가 빠릅니다. 그러나 원하는 답이 좋다는 것을 확실히하십시오. 합계를하면 (x + y) 합산 (x) + 합계 (y)가됩니다. 하지만 이미 그 생각을했다고 생각합니다. –