STV_EXEC_STATE
STV_EXEC_STATE 테이블은 컴퓨팅 노드에서 활성화되어 실행 중인 쿼리 및 쿼리 단계에 대한 정보를 확인하는 데 사용됩니다.
이 정보는 일반적으로 엔지니어링 문제를 해결하는 목적으로만 사용됩니다. SVV_QUERY_STATE 뷰와 SVL_QUERY_SUMMARY 뷰는 정보를 STV_EXEC_STATE에서 추출합니다.
STV_EXEC_STATE는 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.
이 테이블의 데이터 중 일부 또는 전부는 SYS 모니터링 뷰인 SYS_QUERY_DETAIL에서도 찾아볼 수 있습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다. 쿼리에 SYS 모니터링 뷰를 사용하는 것이 좋습니다.
테이블 열
열 명칭 | 데이터 유형 | 설명 |
---|---|---|
userid | 정수 | 항목을 생성한 사용자의 ID. |
쿼리 | 정수 | 쿼리 ID. 다양한 다른 시스템 테이블 및 보기를 조인하는 데 사용할 수 있습니다. |
slice | 정수 | 단계가 완료된 노드 조각 |
segment | 정수 | 실행된 쿼리 세그먼트입니다. 쿼리 세그먼트는 연속된 단계들의 집합입니다. |
step | 정수 | 완료된 쿼리 세그먼트의 단계입니다. 단계는 쿼리가 수행하는 가장 작은 단위입니다. |
starttime | 타임스탬프 | 단계가 실행된 시간입니다. |
currenttime | 타임스탬프 | 현재 시간 |
tasknum | 정수 | 단계 완료을 위해 할당되는 쿼리 태스크 프로세스입니다. |
rows | bigint | 처리된 행 수 |
bytes | bigint | 처리된 바이트 수 |
레이블 | char(256) | 쿼리 단계 이름 및 해당되는 경우, 테이블 ID와 테이블 이름으로 구성되는 단계 레이블(예: scan tbl=100448 name =user ). 3자리 테이블 ID는 일반적으로 일시적 테이블의 스캔을 가리킵니다. tbl=0 이 표시된다면 일반적으로 일정한 값의 스캔을 가리킵니다. |
is_diskbased | char(1) | 디스크 기반 작업으로서 이번 쿼리 단계의 완료 여부: true(t ) 또는 false(f ). 해시, 정렬, 집계 단계 같은 특정 단계만 디스크로 갈 수 있습니다. 많은 단계 형식은 항상 메모리에서 완료됩니다. |
workmem | bigint | 단계에 할당되는 유효 메모리의 바이트 수 |
num_parts | 정수 | 해시 단계 도중 해시 테이블이 분할되는 파티션의 수. 이 열의 양수는 해시 단계가 디스크 기반 작업으로 실행되었음을 뜻하지 않습니다. 해시 단계가 디스크 기반인지 확인하려면 IS_DISKBASED 열의 값을 확인합니다. |
is_rrscan | char(1) | true(t )인 경우, 단계에서 범위 제한 스캔이 사용되었음을 나타냅니다. 기본값은 false(f )입니다. |
is_delayed_scan | char(1) | true(t )인 경우, 단계에서 지연된 스캔이 사용되었음을 나타냅니다. 기본값은 false(f )입니다. |
샘플 쿼리
STV_EXEC_STATE에 대해 직접 쿼리를 실행하기보다는 SVL_QUERY_SUMMARY 또는 SVV_QUERY_STATE에 대해 쿼리를 실행하여 더욱 사용자 친화적인 형식으로 STV_EXEC_STATE의 정보를 가져오는 방법이 권장됩니다. 자세한 내용은 SVL_QUERY_SUMMARY 또는 SVV_QUERY_STATE 테이블 설명서를 참조하십시오.