나는 A + B 합계를 생성하고자하는 두 개의 데이터 열 A와 B가있는 간단한 데이터 로깅 테이블을 가지고 있습니다. 그러나 A와 B 중 하나 또는 둘 모두가 널이 될 수 있습니다.T-SQL 쿼리 계획을 통해 최상의 쿼리 형식을 선택할 수 있습니까?
:이 표는 기본 키내가이 고양이를 피부 여러 가지 방법으로 볼 수 있지만 내가 선호하는 방법은 타임 스탬프의 범위에서 데이터를 요약 할 수 있습니다 무엇인지 궁금했다있는 타임 스탬프 열이
Form Select Compute Scalar Stream Aggregate Compute Scaler Clustered Index Seek 1 0% 0% 11% 1% 87% 2 0% 0% 11% 1% 87% Form Select Compute Scalar Compute Scaler Stream Aggregate Clustered Index Seek 3 0% 0% 0% 12% 88%
나는 매우 그래서 숫자를 해석하는 방법을 잘 모르겠습니다 전에 쿼리 계획에 파 놓은 광산 적이있다 :
1. SUM(Coalesce(A,0)+Coalesce(B,0))
2. SUM(Coalesce(A+B,A,B,0))
3. Coalesce(Sum(A), 0) + Coalesce(SUM(B), 0)
은 내가 실행 계획에서 다음과 같은 결과를 얻을 수 있습니다. 일반적으로 오른쪽으로 더 밀면 전반적인 백분율이 뒤틀린다고 말하는 것이 공평할까요? 양식 3을 1과 2보다 우월하게 만드십니까?
좋아요.하지만 쿼리 계획 결과가 동일한 데이터를 통해 실행되었다고하면 어떻게되는지 알 수 있습니까? –
실제로 쿼리를 실행하기 전에 쿼리 엔진에서 사용하기 위해 생성 된 _expected_ 계획입니다. SQL Server에서 쿼리를 실행하는 방법을 알려주지 만 실제로 시간을 고려하지는 않습니다. 실제 실행 시간을 살펴 봐야합니다. 그렇지 않으면 조용한 서버에서 수행하고, 평균을 얻기 위해 여러 번하십시오. –
@Joel .. 근본적으로이 실행 계획을 보는 것이별로 유용하지 않으며 조용한 서버에서 실제 데이터에 대해 쿼리를 실행하여 실제로 의미있는 결정을 내릴 수 있다고 나에게 말하고 있습니까? 이것은 나에게 조금 솔직하지 않은 것처럼 보입니다. –