SHOW INDEXES
SHOW INDEXES
SHOW INDEXES 명령은 접근 권한(privilege)이 있는 계정의 모든 인덱스(index) 목록을 보여주는 명령이에요. 하이브리드 테이블(hybrid table)에 정의된 인덱스들을 확인할 때 사용해요.
출처: 문서
본문
이 명령은 접근 권한이 있는 계정의 모든 인덱스를 나열해요.
기능 상태: 일반 공급(Generally Available). AWS와 Microsoft Azure 상용 리전의 계정에서만 사용 가능해요.
관련 명령: CREATE HYBRID TABLE, CREATE INDEX, DROP INDEX, DROP TABLE, DESCRIBE TABLE, SHOW HYBRID TABLES.
구문 (Syntax)
SHOW [ TERSE ] INDEXES
[ LIKE '<pattern>' ]
[ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | TABLE <table_name> } ]
[ STARTS WITH '<name_string>' ]
[ LIMIT <rows> [ FROM '<name_string>' ] ]
파라미터 (Parameters)
-
TERSE — 출력 컬럼의 일부만 선택적으로 반환해요:
created_on,name,kind,database_name,schema_name. 기본값: 없음. -
LIKE
<pattern>— 명령 출력을 객체 이름으로 필터링해요. 대소문자를 구분하지 않는 패턴 매칭이며 SQL 와일드카드 문자(%와_)를 지원해요. 기본값: 없음. -
IN {
ACCOUNT|DATABASE[<database_name>] |SCHEMA[<schema_name>] |TABLE|TABLE <table_name>} — 지정한 데이터베이스, 스키마, 테이블 또는 계정으로 출력을 필터링해요. 범위 규칙은 다른 SHOW 명령과 동일해요. 기본값: 세션에 현재 데이터베이스가 있으면DATABASE, 없으면ACCOUNT. -
STARTS WITH
<name_string>— 객체 이름의 시작 문자를 기준으로 출력을 필터링해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분해요. -
LIMIT
<rows>[ FROM<name_string>] — 최대 행 수를 제한하면서 결과의 "페이지네이션"을 가능하게 해요.FROM '<name_string>'하위 절은 결과의 "커서" 역할을 해요. 문자열은 작은따옴표로 묶어야 하며 대소문자를 구분하고, 부분 이름이 지원돼요.참고:
STARTS WITH와FROM절을 모두 지원하는 SHOW 명령에서는 두 절을 같은 문장에서 결합할 수 있어요. 다만 두 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 결과가 반환되지 않아요.
출력 (Output)
명령 출력은 다음 컬럼을 포함해요:
- created_on — 인덱스가 생성된 날짜·시간.
- name — 인덱스 이름.
- is_unique — 인덱스가 고유(unique) 인덱스인지 여부.
- columns — 인덱스된 컬럼 목록.
- included_columns — 포함된(covered) 컬럼 목록.
- table — 테이블 이름.
- database_name — 인덱스가 저장된 데이터베이스.
- schema_name — 인덱스가 저장된 스키마.
- owner — 인덱스를 소유한 역할.
- owner_role_type — 소유자의 역할 유형.
- status — 인덱스의 빌드 상태. 가능한 값은 CREATE INDEX를 참고해요.
- status_info — 빌드 상태에 대한 추가 세부 정보(예: 빌드가 검증에 실패한 이유).
사용 참고 사항 (Usage notes)
- 실행에 실행 중인 웨어하우스를 요구하지 않아요.
- 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
MANAGE GRANTS권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.- 출력을 후처리하려면 파이프 연산자(
|>) 또는RESULT_SCAN함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요.
예제 (Examples)
이름에 DEVICE 문자열이 포함된 인덱스의 terse 목록을 반환해요:
SHOW TERSE INDEXES LIKE '%DEVICE%';
포함된 컬럼(included_columns)이 있는 인덱스만 반환해요. 파이프 연산자(|>)를 사용해 SHOW INDEXES 전체 출력에서 특정 행·컬럼을 선택해요:
SHOW INDEXES
->> SELECT "name",
"is_unique",
"table",
"columns",
"included_columns",
"database_name",
"schema_name"
FROM $1
WHERE "included_columns" != '[]';
더 알아보기 (Learn more)
- CREATE INDEX — 인덱스 만들기
- DROP INDEX — 인덱스 삭제
- SHOW HYBRID TABLES — 하이브리드 테이블 목록 조회