검색어 비용은 어떻게 읽고 항상 백분율입니까?


34

현재 SQL 70-433 (Microsoft 인증 시험)을 공부하고 있는데 "조회 비용"성능 지표에 대해 매우 혼란스러워하고 있습니다.

Google을 통해 찾을 수있는 모든 문서에 따르면 쿼리 비용은 백분율 수치이며 그중 일부가 차지하는 전체 배치의 백분율을 나타냅니다. 나는 함께 나타나는 다른 쿼리에 비해 장점이 아니라 특정 쿼리의 절대 장점에 관심이 있기 때문에 이미 조금 이상하게 보였습니다.

그러나 나는 아마도 당신이해야 할 일은 두 개의 대체 쿼리를 나란히 배치하고 "일괄 처리"로 실행하고 50 % 미만의 비용을 가진 것이 승자라고 생각했을 것입니다.

그러나 6 장의 쿼리 비용에 대한 논의는 Microsoft의 SQL 70-433 Training Kit의 교훈 중 하나와 관련이없는 것 같습니다.

예를 들면 다음과 같습니다. 두 개의 상관 된 하위 쿼리가 포함 된 쿼리를 표시 한 다음 하위 쿼리를 OUTER APPLY로 바꿔서 향상시킵니다. 결과 : "이 쿼리의 비용은 약 76이고 첫 번째 쿼리의 비용은 약 151의 두 배입니다." 그런 다음 쿼리를 더욱 향상시키고 비용을 76에서 3.6으로 줄입니다. 이들은이 수치가 백분율임을 암시하지 않지만, 다른 질의를 참조하지 않고 독립형 개체로서의 질의와 관련된 절대적인 수치임을 암시합니다. 어쨌든 첫 번째 쿼리의 비용은 어떻게 151 %입니까?

이 장의 뒷부분에서 세 부분으로 구성된 실행 계획의 스크린 샷을 보여줍니다. 첫 번째는 "비용 : 0 %", 두 번째는 "비용 : 1 %", 마지막은 "비용 : 99 %"이지만 스크린 샷 아래의 텍스트 (책 자체)는 "이 쿼리 비용은 0.56"입니다. . 나는 그들이 다른 종류의 비용을 의미한다고 생각하지만, 다른 곳에서는 그것에 대한 언급을 찾을 수 없습니다.

누군가 도울 수 있습니까? 나는 완전히 혼란 스럽다.


추신 : 그들이 실행 계획에 표시된 백분율 이외의 다른 것을 언급한다고 가정하면 SSMS가 인용하는 수치를 어떻게 보여줄 수 있습니까? SET STATISTICS TIME ON과 같은 것이 필요하지만 메시지 탭에 "비용"수치를 표시하는 다른 명령이 있습니까?

답변:


43

쿼리 비용은 실행 계획에서 "예상 서브 트리 비용"으로보고됩니다. 이것은와 같은 절대적인 수치 1.5입니다. Conor Cunningham은 SQLBits 프레젠테이션 에서 SQL Server 7 일 동안 특정 Microsoft 직원 컴퓨터 ( "Nick 's Machine" )에서 실행되는 시간 (초)을 언급했다고 언급했습니다.

여기에 이미지 설명을 입력하십시오

그러나 이제는 전체 비용의 단위가없는 측정 값으로 해석해야합니다.

실행 계획은 나무입니다. 트리의 각 반복자에는 예상 CPU 비용과 예상 IO 비용이 주어지며 전체 비용을 얻기 위해 함께 추가됩니다 (비교적 가중치는 문서화되지 않은 두 개의 DBCC 명령 으로 조정할 수 있음 ). 예상 하위 트리 비용에는 반복자 자체 및 모든 하위 항목의 비용이 포함됩니다. 사용 된 원가 계산 공식의 예를 보려면 이 기사를 참조하십시오 .

SSMS에서 전체 쿼리의 예상 비용을 결정하려면 SELECT그래픽 계획 왼쪽 에서 루트 반복자 (예 : 반복자)를 선택 하고 SSMS 속성 창에서이 메트릭을 확인하십시오.

여러 쿼리를 실행하는 경우 (동일한 배치에 관계없이) 백분율은 이러한 모든 값을 합산하고 예상 한 백분율을 계산하여 계산됩니다.

실제 실행 계획에서도이 비용 수치는 추정치를 기반으로하며이 추정치를 사용하여 두 개의 서로 다른 쿼리의 상대적인 장점을 비교하면 추정치가 정확하지 않은 경우 잘못 될 수 있습니다.


고맙습니다. 정말 도움이됩니다. 그리고 전혀 분명하지 않습니다! 왜 그 숫자가 더 명확하게 표시되지 않았는지 궁금합니다.

4
나는 항상 측정 단위에 대해 궁금해했고 마침내 알게되었습니다. 나는 그것이 "SQL Dollars"라고 사람들에게 (만화) 설명했다. 쿼리 비용이 1.0이면 커피 한 잔에 1 달러를 지불하는 것과 같습니다. 나쁜 가격이 아닙니다. 한 잔에 300 달러를 지불 하시겠습니까? 안돼!
datagod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.