Postgres 설명 비용

Postgres Seolmyeong Biyong



Postgres는 강력하고 널리 사용되는 오픈 소스 관계형 데이터베이스 시스템으로 견고성, 기능 및 성능으로 명성이 높습니다.

Postgres를 강력한 성능으로 만드는 도구 중 하나는 SQL 쿼리의 실행 계획에 대한 세부 정보를 제공하는 EXPLAIN 명령입니다.

EXPLAIN 명령이란 무엇입니까?

EXPLAIN 명령은 주어진 SQL 문에 대해 PostgreSQL 플래너가 생성하는 실행 계획을 표시합니다.







여기에는 각 쿼리 단계를 수행하는 예상 비용에 대한 정보가 포함됩니다. 이러한 비용을 조사하면 쿼리가 느리게 실행되는 이유와 쿼리를 최적화하는 방법을 이해할 수 있습니다.



PostgreSQL 설명 비용

주로 EXPLAIN 명령을 사용하여 주어진 쿼리에 대한 정보를 가져옵니다. 이 명령은 쿼리에 대한 일부 정보를 출력합니다.



다음과 같은 쿼리를 예로 들어 보겠습니다.





SELECT f.제목, c.이름
FROM 영화
JOIN film_category fc ON f.film_id = fc.film_id
JOIN 카테고리 c ON fc.category_id = c.category_id;

이전 단순 조인에서 Explain 명령을 실행하면:

설명 SELECT f.title, c.name
FROM 영화
JOIN film_category fc ON f.film_id = fc.film_id
JOIN 카테고리 c ON fc.category_id = c.category_id;

다음과 같이 출력을 얻어야 합니다.



각 쿼리 단계에 대해 PostgreSQL이 해당 쿼리의 예상 비용을 반환한다는 것을 알 수 있습니다.

  1. startup_cost – 행 출력을 시작하기 전에 작업을 초기화하는 데 드는 예상 비용을 보여줍니다.
  2. total_cost – 모든 행을 검색하는 총 비용입니다.
  3. 행 – 쿼리에서 반환되는 예상 행 수를 결정합니다.
  4. 너비 – 작업에서 반환되는 모든 행의 평균 바이트 수를 결정합니다.

PostgreSQL의 쿼리 비용은 서버 구성에 설정된 비용 매개변수에 의해 결정되는 임의의 단위로 표시됩니다.

이러한 매개변수의 핵심은 캐시에 없는 디스크 페이지 가져오기 비용을 설정하는 seq_page_cost입니다.

pgAdmin을 사용 중인 경우 '설명 분석' 기능을 사용하여 설명 명령에 대해 더 읽기 쉽고 잘 표현된 다이어그램을 얻을 수 있습니다. 예를 들어:

그런 다음 각 단계를 클릭하여 통계 및 예상 비용을 볼 수 있습니다.

비용을 기준으로 쿼리 최적화

쿼리를 최적화할 때 낮은 비용은 일반적으로 더 빠른 실행을 의미한다는 점을 이해하는 것이 중요합니다. 따라서 저렴한 비용으로 쿼리를 수정할 수 있습니다.
고려해야 할 몇 가지 요소는 다음과 같습니다.

테이블 인덱스 사용 – 인덱스는 더 빠른 조회를 허용하는 데이터 구조를 유지함으로써 검색 기반 쿼리 비용을 크게 줄입니다.

함수와 연산자를 현명하게 사용 – 실제 비용은 특정 데이터에 따라 크게 달라질 수 있으므로 기능 및 연산자에 대한 비용 추정이 항상 정확한 것은 아닙니다. 따라서 함수와 복잡한 연산자의 사용을 최소한으로 제한하십시오.

결론

PostgreSQL ANALYZE 명령에서 비용의 개념을 탐구했습니다. 명령 출력의 의미와 주어진 쿼리를 실행하는 가장 효율적인 방법을 분석하기 위해 비용 출력을 사용하는 방법에 대해 논의했습니다.