STL_PLAN_INFO
STL_PLAN_INFO 뷰는 쿼리의 EXPLAIN 출력을 행 집합으로 표시하는 데 사용됩니다. 이 테이블은 쿼리 계획을 살펴볼 수 있는 대체 방법이기도 합니다.
STL_PLAN_INFO는 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.
참고
STL_PLAN_INFO에는 기본 클러스터에서 실행되는 쿼리만 포함됩니다. 동시성 조정 클러스터에서 실행되는 쿼리는 포함되지 않습니다. 기본 및 동시성 조정 클러스터 모두에서 실행되는 쿼리에 액세스하려면 SYS 모니터링 뷰인 SYS_QUERY_DETAIL을 사용하는 것이 좋습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다.
테이블 열
열 명칭 | 데이터 유형 | 설명 |
---|---|---|
userid | 정수 | 항목을 생성한 사용자의 ID. |
쿼리 | 정수 | 쿼리 ID. 쿼리 열을 사용하여 다른 시스템 테이블 및 보기를 조인할 수 있습니다. |
nodeid | 정수 | 계획 노드 식별자. 쿼리 실행 시 이 식별자를 통해 노드가 1개 이상의 단계로 매핑됩니다. |
segment | 정수 | 쿼리 세그먼트를 식별할 수 있는 번호 |
step | 정수 | 쿼리 단계를 식별할 수 있는 번호 |
locus | 정수 | 단계가 실행되는 위치로 컴퓨터 노드이면 0이고, 리더 노드이면 1입니다. |
plannode | 정수 | 계획 노드의 열거 값. plannode 열의 열거형 값은 다음 테이블을 참조하십시오. (STL_EXPLAIN 테이블의 PLANNODE 열에는 계획 노드 텍스트가 포함됩니다) |
startupcost | double precision | 이 단계의 첫 번째 행을 반환하는 상대적 예상 비용 |
totalcost | double precision | 단계를 실행하는 상대적 예상 비용 |
rows | bigint | 단계에서 산출될 것으로 예상되는 행의 수 |
bytes | bigint | 단계에서 산출될 것으로 예상되는 바이트 수 |
샘플 쿼리
다음은 단순한 SELECT 쿼리에서 EXPLAIN 명령을 사용하여 반환되는 쿼리 계획과 STL_PLAN_INFO 뷰에 대한 쿼리를 실행하여 반환되는 쿼리 계획을 비교하는 예입니다.
explain select * from category; QUERY PLAN ------------------------------------------------------------- XN Seq Scan on category (cost=0.00..0.11 rows=11 width=49) (1 row) select * from category; catid | catgroup | catname | catdesc -------+----------+-----------+-------------------------------------------- 1 | Sports | MLB | Major League Baseball 3 | Sports | NFL | National Football League 5 | Sports | MLS | Major League Soccer ... select * from stl_plan_info where query=256; query | nodeid | segment | step | locus | plannode | startupcost | totalcost | rows | bytes -------+--------+---------+------+-------+----------+-------------+-----------+------+------- 256 | 1 | 0 | 1 | 0 | 104 | 0 | 0.11 | 11 | 539 256 | 1 | 0 | 0 | 0 | 104 | 0 | 0.11 | 11 | 539 (2 rows)
이번 예에서 PLANNODE 104는 CATEGORY 테이블에 대한 순차적 스캔을 의미합니다.
select distinct eventname from event order by 1; eventname ------------------------------------------------------------------------ .38 Special 3 Doors Down 70s Soul Jam A Bronx Tale ... explain select distinct eventname from event order by 1; QUERY PLAN ------------------------------------------------------------------------------------- XN Merge (cost=1000000000136.38..1000000000137.82 rows=576 width=17) Merge Key: eventname -> XN Network (cost=1000000000136.38..1000000000137.82 rows=576 width=17) Send to leader -> XN Sort (cost=1000000000136.38..1000000000137.82 rows=576 width=17) Sort Key: eventname -> XN Unique (cost=0.00..109.98 rows=576 width=17) -> XN Seq Scan on event (cost=0.00..87.98 rows=8798 width=17) (8 rows) select * from stl_plan_info where query=240 order by nodeid desc; query | nodeid | segment | step | locus | plannode | startupcost | totalcost | rows | bytes -------+--------+---------+------+-------+----------+------------------+------------------+------+-------- 240 | 5 | 0 | 0 | 0 | 104 | 0 | 87.98 | 8798 | 149566 240 | 5 | 0 | 1 | 0 | 104 | 0 | 87.98 | 8798 | 149566 240 | 4 | 0 | 2 | 0 | 117 | 0 | 109.975 | 576 | 9792 240 | 4 | 0 | 3 | 0 | 117 | 0 | 109.975 | 576 | 9792 240 | 4 | 1 | 0 | 0 | 117 | 0 | 109.975 | 576 | 9792 240 | 4 | 1 | 1 | 0 | 117 | 0 | 109.975 | 576 | 9792 240 | 3 | 1 | 2 | 0 | 114 | 1000000000136.38 | 1000000000137.82 | 576 | 9792 240 | 3 | 2 | 0 | 0 | 114 | 1000000000136.38 | 1000000000137.82 | 576 | 9792 240 | 2 | 2 | 1 | 0 | 123 | 1000000000136.38 | 1000000000137.82 | 576 | 9792 240 | 1 | 3 | 0 | 0 | 122 | 1000000000136.38 | 1000000000137.82 | 576 | 9792 (10 rows)