설명 계획에서 비용, 카디널리티 및 바이트의 의미는 무엇입니까?
다음은 간단한 쿼리입니다.select * from customers
이 쿼리를 PL/SQL 개발자에 작성하고 F5를 누르면 설명 계획이 표시되지만 비용, 카디널리티 및 바이트가 무엇을 나타내는지 알 수 없습니다.
평면도 표 열에 대한 설명은 섹션 12.10을 참조합니다.
https://docs.oracle.com/cd/E11882_01/server.112/e41573/ex_plan.htm#PFGRF009
비용은 옵티마이저가 특정 계획을 통해 쿼리를 실행하기 위해 추정하는 작업량입니다.옵티마이저는 일반적으로 더 낮은 비용 계획을 선호합니다.
비용은 여러 요인에 의해 결정되지만 표 통계량은 가장 큰 요인 중 하나입니다.
카디널리티는 계획 단계에서 최적화자가 처리할 것으로 추측하는 행 수입니다.통계가 오래되었거나 누락되었거나 불완전한 경우 이는 크게 잘못된 것일 수 있습니다.최적화 도구가 5개의 행(카디널리티)을 보는 위치를 찾고자 하지만 실제로는 50,000개의 행이 있습니다.
바이트는 카디널리티(cardinality)와 동일한 개념이지만 처리해야 할 데이터 대 테이블의 행의 순수한 측면에서 볼 수 있습니다.
이것은 능동적인 학습과 경험이 필요한 매우 깊은 주제입니다.저는 많은 사람들이 갈 곳에 대한 아이디어를 제공할 수 있다고 확신합니다.저는 개인적으로 마리아의 블로그를 즐깁니다.그녀는 옵티마이저의 전 제품 매니저입니다.
http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf 에서:
비용이란?
Oracle Optimizer는 비용 기반의 Optimizer입니다.SQL 문에 대해 선택한 실행 계획은 Optimizer에서 고려하는 여러 가지 대체 실행 계획 중 하나일 뿐입니다.Optimizer는 비용이 가장 낮은 실행 계획을 선택합니다. 여기서 비용은 해당 계획의 예상 리소스 사용량을 나타냅니다.비용이 낮을수록 계획의 효율성이 높을 것으로 예상됩니다.최적화자의 비용 모델은 쿼리에 사용될 IO, CPU 및 네트워크 리소스를 설명합니다.그림 8: 비용은 실행계획서의 다섯 번째 열에서 확인할 수 있습니다. 전체 계획의 비용(0행 표시)과 각 개별 작업은 실행계획서에 표시됩니다.그러나 조정하거나 변경할 수 있는 것은 아닙니다.비용은 내부 단위이며 계획 비교를 위해 표시됩니다.
Database Performance Tuning Guide(데이터베이스 성능 튜닝 가이드)에서도 확인할 수 있으며 여기에는 다음과 같이 나와 있습니다.
이 열의 값은 특정한 측정 단위가 없으며 실행 계획의 비용을 비교하는 데 사용되는 가중 값일 뿐입니다.이 열의 값은 CPU_COST 열과 IO_COST 열의 함수입니다.
따라서 - COST는 CPU와 IO 비용의 함수인 무차원 값입니다.
언급URL : https://stackoverflow.com/questions/48732396/what-is-the-meaning-of-cost-cardinality-and-bytes-in-explain-plan
'it-source' 카테고리의 다른 글
스프링-부트가 1 대 다 연관된 무한 루프 (0) | 2023.09.13 |
---|---|
캐럿(^) 문자는 Git에서 무엇을 의미합니까? (0) | 2023.09.13 |
파워셸 출력 숨기기 (0) | 2023.09.13 |
object.watch()를 모든 브라우저에 적용하시겠습니까? (0) | 2023.09.13 |
워드프레스 ==> SSL ==> MySQL 이 구성이 가능합니까? (0) | 2023.09.13 |