EXPLAIN_JSON
EXPLAIN_JSON (EXPLAIN 계획 변환)
이 함수는 EXPLAIN 계획을 JSON에서 테이블로 변환해요. 출력은 EXPLAIN USING TABULAR <statement> 명령의 출력과 동일해요.
본문
구문
EXPLAIN_JSON( <explain_output_in_json_format> )
인자
explain_output_in_json_format
EXPLAIN 출력을 JSON 호환 문자열로 담은 문자열, 또는 문자열로 평가되는 표현식이에요. 일반적으로 이 입력은 SYSTEM$EXPLAIN_PLAN_JSON 함수의 출력이에요. 리터럴 문자열을 사용하는 경우 작은따옴표 문자 '로 묶어야 해요.
반환 값
이 함수는 EXPLAIN 출력을 순서가 있는 행 집합으로 담은 테이블을 반환해요.
이 함수의 출력은 EXPLAIN USING TABULAR <sql_statement>의 출력과 동일해요.
사용 참고 사항
- 입력은 상수 표현식이어야 해요. 예를 들어 컬럼에 대해 이 함수를 호출할 수 없어요.
- 문자열 리터럴을 입력으로 전달하면 문자열 주위의 구분자는 작은따옴표
'또는 큰달러 기호$$가 될 수 있어요. 문자열 리터럴이 작은따옴표를 포함하면(그리고 큰달러 기호를 포함하지 않으면), 문자열을 큰달러 기호로 구분하면 문자열 안의 작은따옴표 문자를 이스케이프할 필요가 없어요. - 출력 테이블은 RESULT_SCAN 함수로 처리할 수 있어요.
- 이 함수는 EXPLAIN 정보를 JSON에서 표 형식으로 변환해요. 종종 JSON 값은 SYSTEM$EXPLAIN_PLAN_JSON 함수에서 직접 또는 간접적으로 생성돼요. 예를 들어 SYSTEM$EXPLAIN_PLAN_JSON의 출력을 테이블에 저장한 뒤, 나중에 이 EXPLAIN_JSON 함수를 사용해 표시할 수 있어요.
- 출력이 표 형식이므로 이 함수는 테이블 함수로 분류돼요.
예시
다음 예시는 이 함수를 사용하는 방법을 보여줘요:
SELECT * FROM TABLE( EXPLAIN_JSON( SYSTEM$EXPLAIN_PLAN_JSON( 'SELECT Z1.ID, Z2.ID FROM Z1, Z2 WHERE Z2.ID = Z1.ID') ) );
+------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+
| step | id | parentOperators | operation | objects | alias | expressions | partitionsTotal | partitionsAssigned | bytesAssigned |
|------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------|
| NULL | NULL | NULL | GlobalStats | NULL | NULL | NULL | 2 | 2 | 1024 |
| 1 | 0 | NULL | Result | NULL | NULL | Z1.ID, Z2.ID | NULL | NULL | NULL |
| 1 | 1 | [0] | InnerJoin | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL |
| 1 | 2 | [1] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z2 | NULL | ID | 1 | 1 | 512 |
| 1 | 3 | [1] | JoinFilter | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL |
| 1 | 4 | [3] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z1 | NULL | ID | 1 | 1 | 512 |
+------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+