

 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/)을 참조하세요.

# SYS\_QUERY\_DETAIL
<a name="SYS_QUERY_DETAIL"></a>

SYS\_QUERY\_DETAIL을 사용하여 다양한 지표 수준에서 쿼리에 대한 세부 정보를 봅니다. 각 행은 지정된 지표 수준에서 특정 WLM 쿼리에 대한 세부 정보를 나타냅니다. 이 보기에는 DDL, DML 및 유틸리티 명령(예: 복사 및 언로드)과 같은 다양한 유형의 쿼리가 포함되어 있습니다. 일부 열은 쿼리 유형에 따라 관련이 없을 수 있습니다. 예를 들어, external\_scanned\_bytes는 내부 테이블과 관련이 없습니다.

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

**참고**  
실행된 쿼리가 포함된 트랜잭션이 성공적으로 커밋되었는지 확인하려면 시스템 테이블과 `sys_transaction_history` 테이블 간에 조인 작업을 수행해야 합니다. 예제:  

```
SELECT 
    th.transaction_id,
    qd.query_id,
    th.status AS transaction_status
FROM 
    sys_query_detail qd
LEFT JOIN sys_query_history qh ON qd.query_id = qh.query_id
LEFT JOIN sys_transaction_history th on qh.transaction_id = th.transaction_id;
```

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


| 열 이름  | 데이터 유형  | 설명  | 
| --- | --- | --- | 
| user\_id | 정수 | 쿼리를 제출한 사용자의 식별자입니다. | 
| query\_id | bigint | 쿼리 식별자입니다. | 
| child\_query\_sequence | 정수 | 재작성된 사용자 쿼리의 순서입니다(1로 시작). | 
| stream\_id | 정수 | 쿼리 스트림의 스트림 식별자입니다. | 
| segment\_id | 정수 | 쿼리 실행 세그먼트의 세그먼트 식별자입니다. | 
| step\_id | 정수 | 세그먼트의 단계 식별자입니다. | 
| step\_name | 텍스트 | 세그먼트의 단계 이름입니다. 가능한 값은 aggregate, broadcast, delete, distribute, hash, hashjoin, insert, limit, merge, nestloop, parse, return, save, scan, sort, sortlimit, unique 및 window입니다. | 
| table\_id | 정수 | 영구 테이블 스캔을 위한 테이블 식별자입니다. | 
| table\_name | character(136) | 작동 중인 단계의 테이블 이름입니다. | 
| is\_rrscan | character | 단계가 스캔 단계인지 여부를 나타내는 값입니다. True(t)는 범위 제한 스캔이 사용되었음을 나타냅니다. | 
| start\_time | timestamp | 쿼리 단계가 시작된 시간입니다. 이 필드는 metrics\_level 열의 값과 관계없이 세그먼트 수준에서 기록됩니다. | 
| end\_time | timestamp | 쿼리 단계가 완료된 시간입니다. 이 필드는 metrics\_level 열의 값과 관계없이 세그먼트 수준에서 기록됩니다. | 
| duration | bigint | 단계에 소요된 시간(마이크로초)입니다. 이 필드는 metrics\_level 열의 값과 관계없이 세그먼트 수준에서 기록됩니다. | 
| 알림 | 텍스트 | 알림 이벤트에 대한 설명입니다. | 
| input\_bytes | bigint | 현재 단계의 입력 바이트입니다. | 
| input\_rows | bigint | 현재 단계의 입력 바이트입니다. | 
| output\_bytes | bigint | 현재 단계의 출력 바이트입니다. | 
| output\_rows | bigint | 현재 단계의 출력 행입니다. | 
| blocks\_read | bigint | 해당 단계에서 읽은 블록 수입니다. | 
| blocks\_write | bigint | 해당 단계에서 작성한 블록 수입니다. | 
| local\_read\_IO | bigint | 로컬 디스크 캐시의 블록 읽기 수입니다. | 
| remote\_read\_IO | bigint | 원격에서 읽은 블록 수입니다. | 
| source | 텍스트 | 스캔한 데이터베이스 객체의 형식입니다. 이 열은 행의 step\_name 값이 scan인 경우에만 값을 갖습니다. | 
| data\_skewness | 정수 | 모든 단계 간의 출력 행 분포의 비대칭도입니다. 0%에서 100% 사이의 숫자입니다. 숫자가 클수록 분포가 더 불균형하다는 뜻입니다. | 
| time\_skewness | 정수 | 모든 단계 간의 실행 시간 분포의 비대칭도입니다. 0%에서 100% 사이의 숫자입니다. 숫자가 클수록 분포가 더 불균형하다는 뜻입니다. | 
| is\_active | character | 단계 수준에서 쿼리의 상태입니다. 가능한 값은 단계가 현재 실행 중임을 나타내는 't'이거나 단계가 실행을 완료했음을 나타내는 'f'입니다. | 
| spilled\_block\_local\_disk | bigint | 로컬 디스크로 유출된 블록 수입니다. | 
| spilled\_block\_remote\_disk | bigint | Amazon Simple Storage Service에 유출된 블록 수입니다. | 
| step\_attribute | character(64) | 관련 단계에 대한 정보가 들어 있습니다. 스캔 단계에서 가능한 값: multi-dimensional. | 
| metrics\_level | character(64) | 쿼리의 지표 수준입니다. 가능한 값은 다음과 같습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/redshift/latest/dg/SYS_QUERY_DETAIL.html) | 
| plan\_parent\_id | 정수 | 계획 노드의 상위 노드 식별자입니다. 상위 노드에는 여러 하위 노드가 있을 수 있습니다. 예를 들어 병합 조인은 조인된 테이블에서 스캔의 상위 노드입니다. | 
| plan\_node\_id | 정수 | 계획 노드 식별자로, 쿼리에서 1개 이상의 단계에 매핑합니다. | 

## 사용 노트
<a name="SYS_QUERY_DETAIL-usage-notes"></a>

SYS\_QUERY\_DETAIL에는 단계, 스트림, 세그먼트 및 하위 쿼리 수준의 지표가 포함될 수 있습니다. metrics\_level 열을 참조하는 것 외에도 다음 표에 따라 step\_id, segment\_id 및 stream\_id 필드를 참조하여 지정된 행에 표시되는 지표 수준을 확인할 수 있습니다.


| 지표 수준 | stream\_id 값 | segment\_id 값 | step\_id 값 | 
| --- | --- | --- | --- | 
| child query | -1 | -1 | -1 | 
| 스트림 | 유효한 단계 값 | -1 | -1 | 
| segment | 유효한 단계 값 | 유효한 단계 값 | -1 | 
| 단계 | 유효한 단계 값 | 유효한 단계 값 | 유효한 단계 값 | 

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

다음 예에서는 SYS\_QUERY\_DETAIL의 출력을 반환합니다.

다음 쿼리는 단계 이름, input\_bytes, output\_bytes, input\_rows, output\_rows 등 단계 수준의 쿼리 메타데이터 세부 정보를 보여줍니다.

```
SELECT query_id,
       child_query_sequence,
       stream_id,
       segment_id,
       step_id,
       trim(step_name) AS step_name,
       duration,
       input_bytes,
       output_bytes,
       input_rows,
       output_rows
FROM sys_query_detail
WHERE query_id IN (193929)
ORDER BY query_id,
         stream_id,
         segment_id,
         step_id DESC;
```

샘플 출력은 다음과 같습니다.

```
 query_id | child_query_sequence | stream_id | segment_id | step_id | step_name  |    duration     | input_bytes | output_bytes | input_rows | output_rows
----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+-------------
   193929 |                    2 |         0 |          0 |       3 | hash       |           37144 |           0 |      9350272 |          0 |      292196
   193929 |                    5 |         0 |          0 |       3 | hash       |            9492 |           0 |        23360 |          0 |        1460
   193929 |                    1 |         0 |          0 |       3 | hash       |           46809 |           0 |      9350272 |          0 |      292196
   193929 |                    4 |         0 |          0 |       2 | return     |            7685 |           0 |          896 |          0 |         112
   193929 |                    1 |         0 |          0 |       2 | project    |           46809 |           0 |            0 |          0 |      292196
   193929 |                    2 |         0 |          0 |       2 | project    |           37144 |           0 |            0 |          0 |      292196
   193929 |                    5 |         0 |          0 |       2 | project    |            9492 |           0 |            0 |          0 |        1460
   193929 |                    3 |         0 |          0 |       2 | return     |           11033 |           0 |        14336 |          0 |         112
   193929 |                    2 |         0 |          0 |       1 | project    |           37144 |           0 |            0 |          0 |      292196
   193929 |                    1 |         0 |          0 |       1 | project    |           46809 |           0 |            0 |          0 |      292196
   193929 |                    5 |         0 |          0 |       1 | project    |            9492 |           0 |            0 |          0 |        1460
   193929 |                    3 |         0 |          0 |       1 | aggregate  |           11033 |           0 |       201488 |          0 |          14
   193929 |                    4 |         0 |          0 |       1 | aggregate  |            7685 |           0 |        28784 |          0 |          14
   193929 |                    5 |         0 |          0 |       0 | scan       |            9492 |           0 |        23360 |     292196 |        1460
   193929 |                    4 |         0 |          0 |       0 | scan       |            7685 |           0 |         1344 |        112 |         112
   193929 |                    2 |         0 |          0 |       0 | scan       |           37144 |           0 |      7304900 |     292196 |      292196
   193929 |                    3 |         0 |          0 |       0 | scan       |           11033 |           0 |        13440 |        112 |         112
   193929 |                    1 |         0 |          0 |       0 | scan       |           46809 |           0 |      7304900 |     292196 |      292196
   193929 |                    5 |         0 |          0 |      -1 |            |            9492 |       12288 |            0 |          0 |           0
   193929 |                    1 |         0 |          0 |      -1 |            |           46809 |       16384 |            0 |          0 |           0
   193929 |                    2 |         0 |          0 |      -1 |            |           37144 |       16384 |            0 |          0 |           0
   193929 |                    4 |         0 |          0 |      -1 |            |            7685 |       28672 |            0 |          0 |           0
   193929 |                    3 |         0 |          0 |      -1 |            |           11033 |      114688 |            0 |          0 |           0
```

데이터베이스의 테이블을 가장 많이 사용된 것부터 가장 적게 사용된 것까지 순서대로 보려면 다음 예제를 사용하세요. {{sample\_data\_dev}}를 사용자 데이터베이스로 바꿉니다. 이 쿼리는 클러스터가 생성된 시점부터 쿼리를 계산하지만, 데이터 웨어하우스에 공간이 부족한 경우 시스템 뷰 데이터는 저장되지 않습니다.

```
SELECT table_name, COUNT (DISTINCT query_id) 
FROM SYS_QUERY_DETAIL 
WHERE table_name LIKE 'sample_data_dev%'
GROUP BY table_name
ORDER BY COUNT(*) DESC;

+---------------------------------+-------+
|           table_name            | count |
+---------------------------------+-------+
| sample_data_dev.tickit.venue    |     4 |
| sample_data_dev.myunload1.venue |     3 |
| sample_data_dev.tickit.listing  |     1 |
| sample_data_dev.tickit.category |     1 |
| sample_data_dev.tickit.users    |     1 |
| sample_data_dev.tickit.date     |     1 |
| sample_data_dev.tickit.sales    |     1 |
| sample_data_dev.tickit.event    |     1 |
+---------------------------------+-------+
```

 다음 예시에서는 단일 WLM 쿼리에 대한 다양한 지표 수준을 보여줍니다.

```
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, step_name, start_time, end_time, metrics_level 
FROM sys_query_detail 
WHERE query_id = 1553 AND step_id = -1 
ORDER BY stream_id, segment_id, step_id;

 query_id | child_query_sequence | stream_id | segment_id | step_id | step_name |         start_time         |          end_time          | metrics_level 
----------+----------------------+-----------+------------+---------+-----------+----------------------------+----------------------------+---------------
     1553 |                    1 |        -1 |         -1 |      -1 |           | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.847838 | child query
     1553 |                    1 |         0 |         -1 |      -1 |           | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.835609 | stream
     1553 |                    1 |         0 |          0 |      -1 |           | 2024-10-17 02:28:49.824677 | 2024-10-17 02:28:49.830372 | segment
     1553 |                    1 |         1 |         -1 |      -1 |           | 2024-10-17 02:28:49.835624 | 2024-10-17 02:28:49.845773 | stream
     1553 |                    1 |         1 |          1 |      -1 |           | 2024-10-17 02:28:49.84088  | 2024-10-17 02:28:49.842388 | segment
     1553 |                    1 |         1 |          2 |      -1 |           | 2024-10-17 02:28:49.835926 | 2024-10-17 02:28:49.844396 | segment
     1553 |                    1 |         2 |         -1 |      -1 |           | 2024-10-17 02:28:49.846949 | 2024-10-17 02:28:49.847838 | stream
     1553 |                    1 |         2 |          3 |      -1 |           | 2024-10-17 02:28:49.847013 | 2024-10-17 02:28:49.847485 | segment
(8 rows)
```