전에 카디널리티 추정관련 뻘글에 누가 고맙게도
아시아쪽 글로벌한 대학교 학부생들이 발표한
카디널리티 추정 알고리즘별 정확도 벤치마킹 논문을
댓글에 올려줬더라고

해당 논문에는
- 카디널리티 추정 알고리즘의 현재의 문제점
- 기존의 카디널리티 추정 알고리즘이 실제 운영환경에서
성능좋은 쿼리플랜을 생성하는지 평가할 수 있는 정확한
방법이 없었으며 이에 대한 견해
- 자신들이 만들어낸
(Q-Error)메트릭을 활용하여 카디널리티 추정 알고리즘의"정확도"와 성능에 대해 평가할수 있음을 설명
- 카디널리티 추정 알고리즘별 설명과 벤치마크 지표
등이 포함되어있더라고

아직 앞부분밖에 읽어보지 못했지만
내가 알고싶었던 카디널리티 추정 알고리즘에
대한 내용을 알 수 있을것으로 기대하고 있고

정확한 카디널리티 추정이 쿼리플랜 품질과
동일하지 않음을 간접적으로 알고있었는데
이를 확실히 할 수 있을것 같네

읽은 부분만 요약하자면
1. 현재까지 RDBMS의 카디널리티 추정 메소드는 크게 두 종류로 분류 된다.
-쿼리를 카디널리티에 매핑하는 방식? (Query Driven Cardinality Estimation) 처음들어봄
-속성의 분포를 직접 모델링(히스토그램, 샘플링)하는 방식 (Data Driven Cadinality Estimation)
(내가 유일하게 알고 있던 방식)

2. 카디널리티 추정 메소드는 끊임없는 발전에도
불구하고 아직까지도 근본적인 문제는 해결하지 못하였음.
- 히스토그램을 사용하는 방식은 실제 비즈니스에 따른 데이터 분포를 표현하지 못할 수 있음
- 카디널리티 추정 메소드가 다중 테이블을 조인하는 쿼리에 대해 단일 테이블 쿼리보다 정확도가 떨어짐
(이것들은 실감한 문제이고 카디널리티 추정 알고리즘을 자세히 아는게 이러한 문제들응 해결하는데 도움을 얻을 수 있을것으로 보임)

3. 이 논문는 카디널리티 추정 정확도를 높게 뽑는
알고리즘을 알아내기 위한 벤치마크 논문이지 실제 DBMS에서 유용한
방식이 무엇인지를 알아내기 위한 논문가 아님
- 카디널리티 추정의 정확도과 쿼리 플랜의 품질과 직접적으로 동일하지 않음
- 실제 쿼리 실행시간은 쿼리플랜의 품질과 카디널리티 추정 "뿐만 아니라" 다른 여러 요인의 영향을 받음

4. 이러한 두가지 문제를 해결하기 위해 DBMS커뮤니티는
실제 운영환경과 유사한 벤치마크 데이터세트, 워크로드가 필요하고
카디널리티 추정 메소드의 성능을 분석하기 위한 심층적인 평가가 필요하다고
얘기함

마지막으로 해당 논문의 목적은
자신들이 만든 (Q-Error)메트릭이 카디널리티
추정 알고리즘의 정확도와 성능을 평가하는데에
있어서 탁월하다고 설명하기 위한게 목적인것 같네.


RDBMS 카디널리티 추정 알고리즘별 정확도와
성능 벤치마킹 논문


RDBMS 카디널리티 추정에 대한
요약 설명과 뻘소리가 담긴 내글



- dc official App