SHOW INDEXES¶
액세스 권한이 있는 계정의 모든 인덱스를 나열합니다.
- 참고 항목:
CREATE HYBRID TABLE , CREATE INDEX , DROP INDEX , DROP TABLE , DESCRIBE TABLE , SHOW HYBRID TABLES
구문¶
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>' ] ]
매개 변수¶
TERSE출력 열의 서브세트만 반환합니다.
created_onnamekinddatabase_nameschema_name
LIKE 'pattern'오브젝트 이름으로 명령 출력을 선택적으로 필터링합니다. 이 필터는 SQL 와일드카드 문자(
%및_) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.예를 들어, 다음 패턴은 같은 결과를 반환합니다.
... LIKE '%testing%' ...... LIKE '%TESTING%' .... 기본값: 값 없음(출력에 필터링이 적용되지 않음).
IN { ACCOUNT | DATABASE [ database_name ] | SCHEMA [ schema_name ] | TABLE | TABLE table_name }지정된 데이터베이스, 스키마, 테이블 또는 계정을 기준으로 출력을 필터링합니다.
키워드
ACCOUNT를 지정하는 경우 이 명령은 현재 계정의 모든 데이터베이스에 있는 모든 스키마의 레코드를 검색합니다.키워드
DATABASE를 지정하면 다음 사항이 적용됩니다.db_name을 지정하는 경우 이 명령은 지정된 데이터베이스의 모든 스키마의 레코드를 검색합니다.db_name을 지정하지 않으면 다음이 적용됩니다.현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.
현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 스키마의 레코드를 검색합니다.
키워드
SCHEMA를 지정하면 다음 사항이 적용됩니다.정규화된 스키마 이름(예:
my_database.my_schema)을 지정하는 경우 이 명령은 지정된 데이터베이스 및 스키마의 레코드를 검색합니다.정규화되지 않은
schema_name을 지정하면 다음 사항이 적용됩니다.현재 데이터베이스가 있는 경우 이 명령은 현재 데이터베이스의 지정된 스키마의 레코드를 검색합니다.
현재 데이터베이스가 없는 경우 이 명령은
SQL compilation error: Object does not exist, or operation cannot be performed오류 메시지를 표시합니다.
schema_name을 지정하지 않으면 다음이 적용됩니다.현재 데이터베이스가 있으면 다음 사항이 적용됩니다.
현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마의 레코드를 검색합니다.
현재 스키마가 없는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.
현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 모든 스키마의 레코드를 검색합니다.
table_name없이 키워드TABLE을 지정하면 다음 사항이 적용됩니다.현재 데이터베이스가 있으면 다음 사항이 적용됩니다.
현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마의 레코드를 검색합니다.
현재 스키마가 없는 경우 이 명령은 현재 데이터베이스의 모든 스키마의 레코드를 검색합니다.
현재 데이터베이스가 없는 경우 이 명령은 계정의 모든 데이터베이스 및 모든 스키마의 레코드를 검색합니다.
(키워드
TABLE이 있거나 없는 상태에서)<테이블_이름>을 지정하는 경우 다음 사항이 적용됩니다.정규화된
<테이블_이름>(예:my_database_name.my_schema_name.my_table_name)을 지정하는 경우 이 명령은 지정된 테이블의 모든 레코드를 검색합니다.스키마 정규화된
<테이블_이름>(예:my_schema_name.my_table_name)을 지정하는 경우 다음 사항이 적용됩니다.현재 데이터베이스가 있는 경우 이 명령은 지정된 테이블의 모든 레코드를 검색합니다.
현재 데이터베이스가 없는 경우 이 명령은
Cannot perform SHOW <오브젝트_유형>. This session does not have a current database...과 유사한 오류를 표시합니다.
정규화되지 않은
<테이블_이름>을 지정하면 다음 사항이 적용됩니다.현재 데이터베이스와 현재 스키마가 있는 경우 이 명령은 현재 데이터베이스의 현재 스키마에서 지정된 테이블의 레코드를 검색합니다.
현재 데이터베이스가 없거나 현재 스키마가 없는 경우 이 명령은
SQL compilation error: <오브젝트> does not exist or not authorized.와 유사한 오류를 표시합니다.
기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.
데이터베이스:
DATABASE가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).데이터베이스 없음:
ACCOUNT가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).
STARTS WITH 'name_string'오브젝트 이름의 시작 부분에 나타나는 문자를 기반으로 명령 출력을 선택적으로 필터링합니다. 문자열은 작은따옴표로 묶어야 하며 대/소문자를 구분 합니다.
예를 들어, 다음 문자열은 서로 다른 결과를 반환합니다.
... STARTS WITH 'B' ...... STARTS WITH 'b' .... 기본값: 값 없음(출력에 필터링이 적용되지 않음)
LIMIT rows [ FROM 'name_string' ]반환되는 최대 행 수를 선택적으로 제한하는 동시에, 결과의 “페이지 매김”도 활성화합니다. 반환되는 실제 행 수는 지정된 제한보다 적을 수 있습니다. 예를 들어 기존 오브젝트 수가 지정된 제한보다 적습니다.
선택적
FROM 'name_string'하위 절은 사실상 결과에 대한 “커서” 역할을 합니다. 그 덕분에 오브젝트 이름이 지정된 문자열과 일치하는 첫 번째 행 다음에 오는 행을 지정된 개수만큼 가져올 수 있습니다.문자열은 작은따옴표로 묶어야 하며 대/소문자를 구분 합니다.
부분 이름이 지원되므로, 문자열이 전체 오브젝트 이름을 포함할 필요는 없습니다.
기본값: 값 없음(출력에 제한이 적용되지 않음)
참고
FROM 'name_string'및STARTS WITH 'name_string'절을 모두 지원하는 SHOW 명령의 경우 동일한 문에서 이러한 절을 모두 결합할 수 있습니다. 하지만 두 가지 조건이 모두 충족되어야 하며, 그렇지 않으면 서로 상쇄되어 아무런 결과도 반환되지 않습니다.또한, 오브젝트는 이름을 기준으로 사전순으로 반환되므로,
FROM 'name_string'은STARTS WITH 'name_string'에서 반환된 행보다 사전 값이 더 높은 행만 반환합니다.예:
... STARTS WITH 'A' LIMIT ... FROM 'B'는 아무런 결과도 반환하지 않습니다.... STARTS WITH 'B' LIMIT ... FROM 'A'는 아무런 결과도 반환하지 않습니다.... STARTS WITH 'A' LIMIT ... FROM 'AB'는 결과를 반환합니다(입력 문자열과 일치하는 행이 있는 경우).
출력¶
열 |
설명 |
|---|---|
|
인덱스가 만들어진 날짜 및 시간입니다. |
|
인덱스의 이름입니다. |
|
인덱스가 고유 인덱스인지 여부입니다. |
|
인덱싱된 열의 목록입니다. |
|
포함된 열의 목록입니다. |
|
테이블의 이름입니다. |
|
인덱스가 저장되는 데이터베이스입니다. |
|
인덱스가 저장되는 스키마입니다. |
|
서비스를 소유한 역할입니다. |
|
소유자의 역할 유형입니다. |
사용법 노트¶
이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.
MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.
이 명령의 출력을 후처리하기 위해 파이프 연산자 (
->>) 또는 RESULT_SCAN 함수를 사용할 수 있습니다. 두 구문 모두 출력을 쿼리할 수 있는 결과 세트로 간주합니다.이 명령의 출력 열 이름은 소문자로 생성됩니다. 파이프 연산자 또는 RESULT_SCAN 함수와 함께 이 명령의 결과 세트를 사용하는 경우 쿼리의 열 이름에 큰따옴표로 묶인 식별자 를 사용하여 스캔된 출력의 열 이름과 일치하도록 합니다. 예를 들어, 출력 열의 이름이
type인 경우 식별자에 대해"type"을 지정합니다.
예¶
다음 SHOW INDEX 예에서는 현재의 데이터베이스와 스키마를 사용합니다.
이름에 문자열 DEVICE 가 포함된 인덱스의 간결한 목록을 반환합니다.
SHOW TERSE INDEXES LIKE '%DEVICE%';
+-------------------------------+---------------------------------------+-----------------+---------------+-------------+
| created_on | name | kind | database_name | schema_name |
|-------------------------------+---------------------------------------+-----------------+---------------+-------------|
| 2024-08-29 12:24:49.197 -0700 | SYS_INDEX_SENSOR_DATA_DEVICE1_PRIMARY | KEY_VALUE_INDEX | HT_SENSORS | HT_SCHEMA |
| 2024-08-29 12:24:49.197 -0700 | DEVICE_IDX | KEY_VALUE_INDEX | HT_SENSORS | HT_SCHEMA |
| 2024-08-29 14:03:36.537 -0700 | SYS_INDEX_SENSOR_DATA_DEVICE2_PRIMARY | KEY_VALUE_INDEX | HT_SENSORS | HT_SCHEMA |
| 2024-08-29 14:03:36.537 -0700 | DEVICE_IDX | KEY_VALUE_INDEX | HT_SENSORS | HT_SCHEMA |
+-------------------------------+---------------------------------------+-----------------+---------------+-------------+
포함된 열(included_columns)이 있는 인덱스만 반환합니다. 파이프 연산자 (->>)를 사용하여 SHOW INDEXES 명령의 전체 출력에서 특정 행과 열을 선택합니다.
SHOW INDEXES
->> SELECT "name",
"is_unique",
"table",
"columns",
"included_columns",
"database_name",
"schema_name"
FROM $1
WHERE "included_columns" != '[]';
다음 출력에는 SELECT 쿼리 결과만 표시됩니다. 한 인덱스가 WHERE 절 조건에 적합합니다.
+------------+-----------+---------------------+-------------+------------------+---------------+-------------+
| name | is_unique | table | columns | included_columns | database_name | schema_name |
|------------+-----------+---------------------+-------------+------------------+---------------+-------------|
| DEVICE_IDX | N | SENSOR_DATA_DEVICE2 | [DEVICE_ID] | [TEMPERATURE] | HT_SENSORS | HT_SCHEMA |
+------------+-----------+---------------------+-------------+------------------+---------------+-------------+