서버 개발/데이터베이스 기타 & 팁

[MSSQL] 실행 계획의 subtree cost는 무엇인가?

지노윈 2020. 4. 22. 10:54
반응형

쿼리의 실행 계획을 살펴 보면 아래와 같이 subtree cost항목이 항상 있습니다.

이것이 의미 하는 것은 현재 노드 하위의 모든 tree들의 총 cost가 얼마나 되는지를 표시 합니다.

특정한 사람의 데스크 탑 PC에서 수행해서 쿼리가 몇 초가 걸리는지를 측정한 값입니다.

 

 

 

이 값의 유래는 다음과 같습니다.

the story goes that when the new query optimizer was developed for SQL server 7.0  in the Query Optimizer team there was a programmer called nick (I am sorry but I do not know his last name) ,he was responsible for calculating query costs  (among other things…)  ,and he had to decide how to generate the cost number for a query ,so he decided that if query runs for 1 second on his own pc the cost will be ….. 1 ,so we can finally answer the question  what is “estimated subtree cost = 1” means,it means ladies and gentleman  that it runs for 1 second on nick’s machine

 

즉, "estimated subtree cost = 1"의 의미는 닉의 머신에서 1초 걸린다는 뜻 입니다.

 

참 재미있죠~

 

이처럼 Cost를 표현하기 위해 Query Bucks라는 것도 있는데 관련 URL 링크합니다.

https://www.brentozar.com/archive/2017/10/estimated-subtree-cost-query-bucks-no-really/

 

What Is Estimated Subtree Cost? Query Bucks. No, Really. - Brent Ozar Unlimited®

When you look at a query plan, SQL Server shows a tooltip with an Estimated Subtree Cost: A long time ago in a galaxy far, far away, it meant the number of seconds it would take to run on one guy’s Dell desktop. These days, it’s just a set of hard-coded co

www.brentozar.com