

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# SVCS\_QUERY\_SUMMARY
<a name="r_SVCS_QUERY_SUMMARY"></a>

SVCS\_QUERY\_SUMMARY 뷰를 사용하여 쿼리 실행에 대한 일반 정보를 찾습니다.

 SVCS\_QUERY\_SUMMARY의 정보는 모든 노드에서 집계됩니다.

**참고**  
 SVCS\_QUERY\_SUMMARY 보기에는 Amazon Redshift가 완료하는 쿼리에 대한 정보만 포함되며 다른 유틸리티 및 DDL 명령이 실행하는 쿼리의 정보는 포함되지 않습니다. DDL 및 유틸리티 명령을 포함하여 Amazon Redshift에 의해 완료되는 모든 문의 전체 목록과 정보를 보려면 SVL\_STATEMENTTEXT 보기를 쿼리할 수 있습니다.  
접두사 SVCS를 포함하는 시스템 뷰는 동시성 확장 클러스터와 기본 클러스터 모두의 쿼리에 대한 세부 정보를 제공합니다. 이 뷰는 접두사 SVL을 포함하는 뷰와 유사합니다. 단, SVL 뷰는 기본 클러스터에서 실행된 쿼리에 대한 정보만 제공합니다.

SVCS\_QUERY\_SUMMARY는 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 [시스템 테이블 및 뷰에 있는 데이터의 가시성](cm_chap_system-tables.md#c_visibility-of-data) 섹션을 참조하세요.

이 테이블의 데이터 중 일부 또는 전부는 SYS 모니터링 뷰인 [SYS\_QUERY\_DETAIL](SYS_QUERY_DETAIL.md)에서도 찾아볼 수 있습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다. 쿼리에 SYS 모니터링 뷰를 사용하는 것이 좋습니다.

SVL\_QUERY\_SUMMARY에 대한 자세한 내용은 [SVL\_QUERY\_SUMMARY](r_SVL_QUERY_SUMMARY.md) 섹션을 참조하세요.

## 테이블 열
<a name="r_SVCS_QUERY_SUMMARY-table-columns"></a>


| 열 이름  | 데이터 유형  | 설명  | 
| --- | --- | --- | 
| userid  | 정수  | 항목을 생성한 사용자의 ID. | 
| 쿼리  | 정수  | 쿼리 ID. 다양한 다른 시스템 테이블 및 보기를 조인하는 데 사용할 수 있습니다. | 
| stm  | 정수  | 스트림: 한 쿼리 내의 동시 세그먼트의 집합. 쿼리에는 하나 이상의 스트림이 있습니다. | 
| seg  | 정수  | 세그먼트 번호. 하나의 쿼리는 여러 세그먼트로 구성되며, 각각의 세그먼트는 하나 이상의 단계로 구성됩니다. 쿼리 세그먼트는 병렬로 실행될 수 있습니다. 각 세그먼트는 단일 프로세스에서 실행됩니다. | 
| step  | 정수  | 실행된 쿼리 단계입니다. | 
| maxtime  | bigint  | 단계가 실행되기 위한 최대 시간(마이크로초)입니다. | 
| avgtime  | bigint  | 단계가 실행되기 위한 평균 시간(마이크로초)입니다. | 
| rows  | bigint  | 쿼리 단계에 연관된 데이터 행의 수. | 
| bytes  | bigint  | 쿼리 단계에 연관된 데이터 바이트의 수. | 
| rate\_row  | double precision  | 행당 쿼리 실행 속도. | 
| rate\_byte  | double precision  | 바이트당 쿼리 실행 속도. | 
| 레이블  | 텍스트  | 쿼리 단계 이름 및 해당되는 경우, 테이블 ID와 테이블 이름으로 구성되는 단계 레이블(예: scan tbl=100448 name =user). 3자리 테이블 ID는 일반적으로 일시적 테이블의 스캔을 가리킵니다.  tbl=0이 표시된다면 일반적으로 일정한 값의 스캔을 가리킵니다. | 
| is\_diskbased  | character(1)  | 쿼리의 이 단계가 클러스터의 노드에서 디스크 기반 작업으로 수행되었는지 여부입니다(true(t) 또는 false(f)). 해시, 정렬, 집계 단계 같은 특정 단계만 디스크로 갈 수 있습니다. 많은 단계 형식은 항상 메모리에서 실행됩니다. | 
| workmem  | bigint  | 쿼리 단계에 할당된 작업 메모리의 양(바이트)입니다. | 
| is\_rrscan  | character(1)  | true(t)인 경우, 단계에서 범위 제한 스캔이 사용되었음을 나타냅니다. 기본값은 false(f)입니다. | 
| is\_delayed\_scan  | character(1)  | true(t)인 경우, 단계에서 지연된 스캔이 사용되었음을 나타냅니다. 기본값은 false(f)입니다. | 
| rows\_pre\_filter | bigint | 영구 테이블 스캔의 경우, 삭제 대기 행(고스트 행)을 필터링하기 전에 내보낸 행의 총수. | 

## 샘플 쿼리
<a name="r_SVCS_QUERY_SUMMARY-sample-queries"></a>

 **쿼리 단계의 처리 정보 확인** 

다음 쿼리는 쿼리 87의 각 단계에 대한 기본적 처리 정보를 보여 줍니다.

```
select query, stm, seg, step, rows, bytes
from svcs_query_summary
where query = 87
order by query, seg, step;
```

이 쿼리는 다음 샘플 출력에서 보듯 쿼리 87에 대한 처리 정보를 검색합니다.

```
 query | stm | seg | step |  rows  |  bytes
-------+-----+-----+------+--------+---------
87     |   0 |   0 |    0 |     90 |    1890 
87     |   0 |   0 |    2 |     90 |     360 
87     |   0 |   1 |    0 |     90 |     360 
87     |   0 |   1 |    2 |     90 |    1440 
87     |   1 |   2 |    0 | 210494 | 4209880 
87     |   1 |   2 |    3 |  89500 |       0 
87     |   1 |   2 |    6 |      4 |      96 
87     |   2 |   3 |    0 |      4 |      96 
87     |   2 |   3 |    1 |      4 |      96 
87     |   2 |   4 |    0 |      4 |      96 
87     |   2 |   4 |    1 |      1 |      24 
87     |   3 |   5 |    0 |      1 |      24 
87     |   3 |   5 |    4 |      0 |       0 
(13 rows)
```

 **쿼리 단계가 디스크에 분산되었는지 여부 확인** 

다음 쿼리는 쿼리 ID 1025(쿼리의 쿼리 ID를 얻는 방법을 확인하려면 [SVL\_QLOG](r_SVL_QLOG.md) 뷰를 참조)인 쿼리의 단계가 디스크로 분산되었는지 또는 쿼리가 전적으로 메모리에서 실행되었는지 여부를 보여 줍니다.

```
select query, step, rows, workmem, label, is_diskbased
from svcs_query_summary
where query = 1025
order by workmem desc;
```

위 쿼리는 다음과 같은 샘플 출력을 반환합니다.

```
query| step|  rows  |  workmem   |  label        | is_diskbased
-----+-----+--------+-----------+---------------+--------------
1025 |  0  |16000000|  141557760 |scan tbl=9     | f
1025 |  2  |16000000|  135266304 |hash tbl=142   | t
1025 |  0  |16000000|  128974848 |scan tbl=116536| f
1025 |  2  |16000000|  122683392 |dist           | f
(4 rows)
```

IS\_DISKBASED의 값을 스캔하면 어떤 쿼리 단계가 디스크로 갔는지 알 수 있습니다. 쿼리 1025의 경우, 해시 단계가 디스크에서 실행되었습니다. 디스크에서 실행될 수 있는 단계에는 hash, aggr, sort 단계가 포함됩니다. 디스크 기반 쿼리 단계만 보려면 위의 예에서 **and is\_diskbased = 't'** 절을 SQL 문에 추가합니다.