카테고리:

시스템 함수

EXPLAIN_JSON

이 함수는 EXPLAIN 계획을 JSON에서 테이블로 변환합니다. 출력은 EXPLAIN USING TABULAR <문> 명령의 출력과 동일합니다.

참고 항목:

SYSTEM$EXPLAIN_PLAN_JSON , SYSTEM$EXPLAIN_JSON_TO_TEXT

구문

EXPLAIN_JSON( <explain_output_in_json_format> )

인자

explain_output_in_json_format

EXPLAIN 출력을 JSON 호환 문자열로서 포함하는 문자열 또는 문자열로 평가되는 식입니다. 일반적으로 이 입력은 SYSTEM$EXPLAIN_PLAN_JSON 함수의 출력입니다. 리터럴 문자열을 사용하는 경우, 작은따옴표 문자 ' 로 묶어야 합니다.

반환

이 함수는 EXPLAIN 출력을 정렬된 행 세트로서 포함하는 테이블을 반환합니다.

이 함수의 출력은 EXPLAIN USING TABULAR <SQL_문> 의 출력과 동일합니다.

사용법 노트

  • 입력은 상수 식이어야 합니다. 이 함수를 예를 들어 열에서 호출할 수 없습니다.

  • 문자열 리터럴이 입력으로 전달된 경우, 문자열 주위의 구분 기호는 작은따옴표 ' 또는 이중 달러 기호 $$ 일 수 있습니다. 문자열 리터럴이 작은따옴표를 포함하는 경우(이중 달러 기호를 포함하지 않음), 이중 달러 기호로 문자열을 구분하면 문자열 내부에 포함된 작은따옴표 문자를 이스케이프할 필요가 없습니다.

  • 출력 테이블은 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 | parent | 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 |
+------+----+--------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+
맨 위로 이동