

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

# STV\_TBL\_PERM
<a name="r_STV_TBL_PERM"></a>

STV\_TBL\_PERM 테이블에는 사용자가 현재 세션에서 임시로 생성한 테이블을 포함하여 Amazon Redshift의 영구 테이블에 대한 정보가 저장됩니다. 또한 모든 데이터베이스의 전체 테이블에 대한 정보가 저장됩니다.

이 테이블은 [STV\_TBL\_TRANS](r_STV_TBL_TRANS.md)와 다릅니다. STV\_TBL\_TRANS 테이블에는 시스템이 쿼리 처리 중 일시적으로 생성하는 데이터베이스 테이블에 대한 정보가 저장됩니다.

STV\_TBL\_PERM은 슈퍼 사용자에게만 표시됩니다. 자세한 내용은 [시스템 테이블 및 뷰에 있는 데이터의 가시성](cm_chap_system-tables.md#c_visibility-of-data) 섹션을 참조하세요.

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


| 열 이름  | 데이터 유형  | 설명  | 
| --- | --- | --- | 
| slice  | 정수  | 테이블에 할당되는 노드 조각  | 
| id  | 정수  | 테이블 ID. | 
| 이름  | character(72)  | 테이블 이름  | 
| rows  | bigint  | 조각에 포함된 데이터 행의 수  | 
| sorted\_rows  | bigint  | 조각에서 이미 디스크에 정렬된 행의 수. 이 수가 ROWS 수와 일치하지 않으면 테이블을 정리하여 행을 재정렬하십시오. | 
| temp  | 정수  | 테이블의 임시 테이블 여부. 0 = false, 1 = true. | 
| db\_id  | 정수  | 테이블이 생성된 데이터베이스의 ID  | 
| insert\_pristine | 정수  | 내부용. | 
| delete\_pristine | 정수  | 내부용. | 
| 백업 | 정수  | 클러스터 스냅샷의 테이블 포함 여부를 나타내는 값. 0 = 예, 1 = 아니요. 자세한 내용은 CREATE TABLE 명령의 [BACKUP](r_CREATE_TABLE_NEW.md#create-table-backup) 파라미터를 참조하십시오. | 
| dist\_style | 정수  | 조각이 속한 테이블의 배포 스타일입니다. 값에 대한 자세한 내용은 [분산 스타일 보기](viewing-distribution-styles.md) 섹션을 참조하세요. 배포 스타일에 대한 자세한 내용은 [분산 스타일](c_choosing_dist_sort.md) 섹션을 참조하세요. | 
| block\_count | 정수  | 조각에서 사용하는 블록 수입니다. 블록 수를 계산할 수 없는 경우 값은 -1입니다. | 

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

다음은 서로 다른 테이블 ID와 이름 목록을 반환하는 쿼리입니다.

```
select distinct id, name
from stv_tbl_perm order by name;

   id   |          name
--------+-------------------------
 100571 | category
 100575 | date
 100580 | event
 100596 | listing
 100003 | padb_config_harvest
 100612 | sales
...
```

다른 시스템 테이블들은 테이블 ID를 사용하기 때문에 특정 테이블의 테이블 ID를 알고 있다면 매우 유용하게 사용할 수 있습니다. 위 예에서 SELECT DISTINCT는 테이블이 다수의 조각으로 분산되면서 중복된 테이블을 제거하기 위해 사용되었습니다.

VENUE 테이블의 각 열에서 사용하는 블록 수를 확인하려면 다음과 같이 쿼리를 입력합니다.

```
select col, count(*)
from stv_blocklist, stv_tbl_perm
where stv_blocklist.tbl = stv_tbl_perm.id
and stv_blocklist.slice = stv_tbl_perm.slice
and stv_tbl_perm.name = 'venue'
group by col
order by col;

 col | count
-----+-------
   0 |     8
   1 |     8
   2 |     8
   3 |     8
   4 |     8
   5 |     8
   6 |     8
   7 |     8
(8 rows)
```

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

ROWS 열에는 삭제만 되고 아직 정리되지 않은(또는 SORT ONLY 옵션과 함께 정리된) 행의 수가 포함됩니다. 따라서 STV\_TBL\_PERM 테이블에서 ROWS 열의 SUM 결과는 임의 테이블에 대해 직접 쿼리를 실행했을 때 COUNT(\*) 결과와 일치하지 않을 수도 있습니다. 예를 들어 VENUE 테이블에서 행 2개를 삭제한 경우 COUNT(\*) 결과가 200이지만 SUM(ROWS) 결과는 여전히 202입니다.

```
delete from venue
where venueid in (1,2);

select count(*) from venue;
count
-------
200
(1 row)

select trim(name) tablename, sum(rows)
from stv_tbl_perm where name='venue' group by name;

tablename | sum
-----------+-----
venue     | 202
(1 row)
```

STV\_TBL\_PERM의 데이터를 동기화하려면 VENUE 테이블에 대한 전체 정리를 실행하십시오.

```
vacuum venue;

select trim(name) tablename, sum(rows)
from stv_tbl_perm
where name='venue'
group by name;

tablename | sum
-----------+-----
venue     | 200
(1 row)
```