Skip to main content
QUICK REVIEW

[논문 리뷰] How I Learned to Stop Worrying and Love Re-optimization

Matthew Perron, Zeyuan Shang|arXiv (Cornell University)|2019. 02. 21.
Advanced Database Systems and Queries참고 문헌 33인용 수 6
한 줄 요약

이 논문은 정확한 카디널리티 추정치 부족으로 인해 지속적으로 발생하는 데이터베이스 쿼리 최적화 성능 저하 문제를 해결하기 위해 런타임 동안 업데이트된 통계 정보를 사용해 장시간 실행 중인 쿼리를 재계획하는 동적 재최적화 전략을 제안한다. 이 방법은 조인 오더 벤치마크의 상위 20개의 가장 느린 쿼리에서 종단 간 지연 시간을 평균 27% 감소시켜, 최적의 카디널리티 추정치의 대부분의 이점을 최소한의 최적화기 변경으로 달성한다.

ABSTRACT

Cost-based query optimizers remain one of the most important components of database management systems for analytic workloads. Though modern optimizers select plans close to optimal performance in the common case, a small number of queries are an order of magnitude slower than they could be. In this paper we investigate why this is still the case, despite decades of improvements to cost models, plan enumeration, and cardinality estimation. We demonstrate why we believe that a re-optimization mechanism is likely the most cost-effective way to improve end-to-end query performance. We find that even a simple re-optimization scheme can improve the latency of many poorly performing queries. We demonstrate that re-optimization improves the end-to-end latency of the top 20 longest running queries in the Join Order Benchmark by 27%, realizing most of the benefit of perfect cardinality estimation.

연구 동기 및 목표

  • 현대의 커스텀 기반 쿼리 최적화기들이 수십 년에 걸친 개선에도 불구하고 여전히 최적의 계획을 생성하지 못하는 이유를 조사하기 위해.
  • 카디널리티 추정치 향상이나 계획 탐색의 정교화보다 재최적화가 성능 향상에 더 실용적인 길인지 평가하기 위해.
  • 실제 워크로드 기반의 벤치마크 환경에서 재최적화가 종단 간 쿼리 지연 시간에 미치는 영향을 측정하기 위해.
  • 현대 데이터베이스 시스템에서 재최적화의 위험 요소와 이점에 대해 평가하기 위해.

제안 방법

  • 저자는 쿼리 실행 시간이 임계값을 초과하면 계획 재생성을 유도하는 단순한 재최적화 기법을 시뮬레이션한다.
  • 재최적화의 성능을 평가하기 위해 조인 오더 벤치마크(JOB)를 사용하며, PostgreSQL의 기본 최적화기와 완벽한 카디널리티 추정치(perfect-(n))와의 비교를 수행한다.
  • 재최적화는 빠른 쿼리에는 영향을 주지 않도록 장시간 실행 중인 쿼리에만 적용된다.
  • 성능 향상을 측정하기 위해 기준선으로 perfect-(17) 대비 실행 시간을 사용한다.
  • 저자는 쿼리 실행 시간 분포를 분석하고 재최적화로 인해 성능 저하가 발생하는 쿼리를 식별한다.
  • 재최적화를 점점 더 정확한 카디널리티 추정치(perfect-(n))와 비교하여 수익 감소 현상을 평가한다.

실험 결과

연구 질문

  • RQ1실제 워크로드 기반의 벤치마크에서 재최적화는 성능이 열악한 쿼리의 종단 간 지연 시간을 크게 줄일 수 있는가?
  • RQ2재최적화만으로도 완벽한 카디널리티 추정치의 이득의 대부분을 달성할 수 있는가?
  • RQ3재최적화의 성능적 위험은 무엇이며, 어떤 쿼리가 회귀에 가장 취약한가?
  • RQ4점점 더 정확한 카디널리티 추정치와 함께 재최적화를 사용할 경우 성능 향상이 계속 유의미한가?

주요 결과

  • 재최적화는 조인 오더 벤치마크의 상위 20개 가장 오래 실행되는 쿼리의 종단 간 지연 시간을 27% 감소시켜, 완벽한 카디널리티 추정치의 대부분의 이점을 달성한다.
  • 3개 이하의 테이블 조인에 대해 완벽한 추정치를 제공하더라도(즉, perfect-(3)) 가장 느린 쿼리에서는 향상이 없으며, 이는 더 나은 추정치만으로는 충분하지 않음을 시사한다.
  • 재최적화는 벤치마크 워크로드의 45%의 쿼리에서 실행 시간을 향상시키며, 특히 가장 오래 실행되는 쿼리에서 가장 큰 성과를 보인다.
  • 재최적화로 인한 최악의 성능 저하는 원래 실행 시간의 100배 이상 악화되었지만, 이는 원래 실행 시간이 약 10ms인 단일 쿼리에만 해당하므로 전체 영향은 무시할 만하다.
  • perfect-(5) 추정치와 함께 재최적화를 사용할 경우 perfect-(5) 전용 대비 뿐만 아니라 6% 이하의 성능 저하만 발생하므로, 대규모 적용 시 위험도가 매우 낮다.
  • 연구 결과 재최적화는 완벽한 카디널리티 추정치를 향한 노력보다 성능 향상에 더 비용 효율적인 길임을 결론지었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.