> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 실행된 쿼리의 시작 시간, 처리 시간, 오류 메시지 등의 정보를 포함하는 시스템 테이블입니다.

# system.query_log

<Info>
  **ClickHouse Cloud에서 쿼리하기**

  이 시스템 테이블의 데이터는 ClickHouse Cloud의 각 노드에 로컬로 저장됩니다. 따라서 전체 데이터를 모두 확인하려면 `clusterAllReplicas` 함수를 사용해야 합니다. 자세한 내용은 [여기](/ko/reference/system-tables/overview#system-tables-in-clickhouse-cloud)를 참조하십시오.
</Info>

## 설명

실행된 쿼리의 시작 시간, 소요 시간, 오류 메시지, 리소스 사용량 및 기타 실행 세부 정보와 같은 메타데이터와 통계를 저장합니다. 쿼리 결과는 저장하지 않습니다.

쿼리 로깅 설정은 서버 구성의 [query\_log](/ko/reference/settings/server-settings/settings/query#query_log) 섹션에서 변경할 수 있습니다.

[log\_queries = 0](/ko/reference/settings/session-settings/log-queries#log_queries)을 설정하여 쿼리 로깅을 비활성화할 수 있습니다. 그러나 이 테이블의 정보는 문제 해결에 중요하므로 로깅을 끄는 것은 권장하지 않습니다.

데이터 플러시 주기는 [query\_log](/ko/reference/settings/server-settings/settings/query#query_log) 서버 설정 섹션의 `flush_interval_milliseconds` 매개변수로 설정됩니다. 강제로 플러시하려면 [SYSTEM FLUSH LOGS](/ko/reference/statements/system#flush-logs) 쿼리를 사용하십시오.

ClickHouse는 테이블의 데이터를 자동으로 삭제하지 않습니다. 자세한 내용은 [Introduction](/ko/reference/system-tables/overview#system-tables-introduction)을 참조하십시오.

`system.query_log` 테이블은 두 종류의 쿼리를 기록합니다.

1. 초기(최상위) 쿼리입니다.
2. 분산 실행용 쿼리와 뷰 평가 등의 내부 서브쿼리를 포함하여 다른 쿼리에서 시작된 자식 쿼리입니다. 이러한 쿼리의 원래 초기 쿼리 정보는 `initial_*` 컬럼에 표시됩니다.

**기본적으로 초기 쿼리 필터링**

일반적으로 `system.query_log`를 쿼리할 때마다 `is_initial_query = 1`을 추가하십시오. 이렇게 하면 자식 쿼리가 제외되어 개별 처리 단계가 초기 쿼리와 별도로 계산되지 않습니다. 이 필터가 쿼리가 클라이언트에 의해 제출되었음을 의미하지는 않습니다. 서버 내부 작업도 초기 쿼리일 수 있기 때문입니다.

ID를 유지하는 자식 쿼리와 함께 초기 쿼리를 추적해야 할 경우에는 대신 `initial_query_id`를 사용하십시오. 초기 쿼리는 `initial_query_id`와 `query_id`에 동일한 값을 가지며, 같은 체인의 자식 쿼리는 초기 쿼리의 `initial_query_id`를 유지하면서 자체 `query_id`를 가집니다. 초기 쿼리에서 생성된 모든 작업이 이런 방식으로 연관되는 것은 아닙니다. 원격 [`QueryRunner`](/ko/reference/engines/table-engines/special/query-runner#cluster-mode) 디스패치처럼 서버에서 디스패치된 작업은 새 `initial_query_id`로 새 초기 쿼리 체인을 시작할 수 있습니다.

```sql theme={null}
SELECT
    hostname,
    type,
    query_id,
    initial_query_id,
    is_initial_query,
    query
FROM system.query_log
WHERE initial_query_id = '<query_id_of_initial_query>'
ORDER BY event_time_microseconds;
```

연관된 자식 쿼리가 다른 노드에서 실행될 수 있는 경우, 예를 들어 [`clusterAllReplicas`](/ko/reference/functions/table-functions/cluster)를 사용하여 모든 노드에서 `system.query_log`를 쿼리하십시오.

각 쿼리는 쿼리 상태(`type` 컬럼 참조)에 따라 `query_log` 테이블에 1개 또는 2개의 행을 생성합니다.

1. 쿼리 실행이 성공하면 `QueryStart` 및 `QueryFinish` 타입의 행 2개가 생성됩니다.
2. 쿼리 처리 중 오류가 발생하면 `QueryStart` 및 `ExceptionWhileProcessing` 타입의 이벤트 2개가 생성됩니다.
3. 쿼리 시작 전에 오류가 발생하면 `ExceptionBeforeStart` 타입의 이벤트 1개가 생성됩니다.

[log\_queries\_probability](/ko/reference/settings/session-settings/log-queries#log_queries_probability) 설정을 사용하여 `query_log` 테이블에 기록되는 쿼리 수를 줄일 수 있습니다.

[log\_formatted\_queries](/ko/reference/settings/session-settings/log#log_formatted_queries) 설정을 사용하여 서식이 지정된 쿼리를 `formatted_query` 컬럼에 기록할 수 있습니다.

이 테이블은 언제든지 TRUNCATE하거나 삭제해도 안전합니다.

## 컬럼

* `hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리를 실행 중인 서버의 호스트명입니다.
* `clickhouse_version` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 해당 행을 생성한 ClickHouse 서버의 버전입니다.
* `system_processor` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 해당 행을 생성한 ClickHouse 서버의 CPU 아키텍처입니다.
* `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/ko/reference/data-types/enum)) — 쿼리 실행 시 발생한 이벤트의 유형입니다. 값: `QueryStart` — 쿼리 실행이 성공적으로 시작됨, `QueryFinish` — 쿼리 실행이 성공적으로 완료됨, `ExceptionBeforeStart` — 쿼리 실행 시작 전 예외 발생, `ExceptionWhileProcessing` — 쿼리 실행 중 예외 발생.
* `event_date` ([Date](/ko/reference/data-types/date)) — 쿼리 시작일입니다.
* `event_time` ([DateTime](/ko/reference/data-types/datetime)) — 쿼리가 시작된 시간.
* `event_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 마이크로초 단위의 쿼리 시작 시간입니다.
* `query_start_time` ([DateTime](/ko/reference/data-types/datetime)) — 쿼리 실행이 시작된 시간입니다.
* `query_start_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 마이크로초 정밀도로 기록된 쿼리 실행 시작 시각입니다.
* `query_duration_ms` ([UInt64](/ko/reference/data-types/int-uint)) — 밀리초 단위의 쿼리 실행 소요 시간.
* `read_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리에 사용된 모든 테이블과 테이블 함수에서 읽은 총 행 수입니다. 여기에는 일반 서브쿼리와 IN 및 JOIN용 서브쿼리가 포함됩니다. 분산 쿼리의 경우, read\_rows에는 모든 레플리카에서 읽은 총 행 수가 포함됩니다. 각 레플리카는 자체 read\_rows 값을 전송하며, 쿼리를 시작한 서버는 수신한 모든 값과 로컬 값을 합산합니다. 캐시 볼륨은 이 값에 영향을 주지 않습니다.
* `read_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리에 참여한 모든 테이블과 테이블 함수에서 읽은 총 바이트 수입니다. 일반적인 서브쿼리와 IN 및 JOIN용 서브쿼리도 포함됩니다. 분산 쿼리에서는 read\_bytes에 모든 레플리카에서 읽은 총 행 수가 포함됩니다. 각 레플리카는 자신의 read\_bytes 값을 전송하며, 쿼리의 시작 서버(initiator)는 수신한 모든 값과 로컬 값을 합산합니다. 캐시 용량은 이 값에 영향을 주지 않습니다.
* `written_rows` ([UInt64](/ko/reference/data-types/int-uint)) — attached 상태인 materialized view 등 파이프라인에 의해 트리거된 다운스트림 삽입에서 기록된 행을 포함한, 쿼리가 기록한 행 수입니다. synchronous insert의 경우 이러한 다운스트림 행은 `query_kind` = `Insert` 항목에 기록됩니다. asynchronous insert의 경우 이러한 행은 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 대상 `Insert` 항목에는 클라이언트에서 수락된 행만 기록됩니다. 행을 기록하지 않는 쿼리의 경우 값은 0입니다.
* `written_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — attached 상태인 materialized view 등 파이프라인에 의해 트리거된 다운스트림 삽입에서 기록된 바이트를 포함한, 쿼리가 기록한 바이트 수(비압축)입니다. synchronous insert의 경우 이러한 다운스트림 바이트는 `query_kind` = `Insert` 항목에 기록됩니다. asynchronous insert의 경우 이러한 바이트는 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 대상 `Insert` 항목에는 클라이언트에서 수락된 바이트만 기록됩니다. 데이터를 기록하지 않는 쿼리의 경우 값은 0입니다.
* `result_rows` ([UInt64](/ko/reference/data-types/int-uint)) — SELECT 쿼리 결과의 행 수 또는 삽입으로 기록된 행 수입니다. synchronous insert의 경우 `query_kind` = `Insert` 항목에서 파이프라인에 의해 트리거된 다운스트림 삽입(예: attached 상태인 materialized view)으로 기록된 행도 여기에 포함됩니다. asynchronous insert의 경우 이러한 다운스트림 행은 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 대상 `Insert` 항목에는 클라이언트에서 수락된 행만 기록됩니다.
* `result_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리 결과를 저장하는 데 사용되는 RAM 용량(바이트)입니다.
* `memory_usage` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리의 메모리 사용량입니다.
* `current_database` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 현재 데이터베이스 이름입니다.
* `query` ([String](/ko/reference/data-types/string)) — 쿼리 문자열.
* `formatted_query` ([String](/ko/reference/data-types/string)) — 형식이 지정된 쿼리 문자열.
* `normalized_query_hash` ([UInt64](/ko/reference/data-types/int-uint)) — 리터럴 값만 다른 쿼리들에 대해 동일한 숫자형 해시 값입니다.
* `query_kind` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리 유형입니다.
* `databases` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 있는 데이터베이스 이름입니다.
* `tables` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 포함된 테이블 이름입니다.
* `columns` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 있는 컬럼 이름입니다.
* `partitions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 포함된 파티션 이름입니다.
* `projections` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 프로젝션 이름입니다.
* `views` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 있는 (구체화된 또는 라이브) 뷰의 이름입니다.
* `exception_code` ([Int32](/ko/reference/data-types/int-uint)) — 예외 코드입니다.
* `exception` ([String](/ko/reference/data-types/string)) — 예외 메시지.
* `stack_trace` ([String](/ko/reference/data-types/string)) — 스택 트레이스. 쿼리가 성공적으로 완료되면 빈 문자열입니다.
* `is_initial_query` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 초기 쿼리인지 여부입니다. 가능한 값: 1 — 초기(최상위) 쿼리, 0 — 분산 실행용 쿼리와 내부 서브쿼리를 포함하여 다른 쿼리에서 시작된 자식 쿼리입니다.
* `connection_address` ([IPv6](/ko/reference/data-types/ipv6)) — 연결이 이루어진 클라이언트의 IP 주소입니다. 프록시를 통해 연결한 경우, 이 값은 프록시의 주소입니다.
* `connection_port` ([UInt16](/ko/reference/data-types/int-uint)) — 연결이 설정된 클라이언트 포트입니다. 프록시를 통해 연결된 경우에는 프록시의 포트입니다.
* `user` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 현재 쿼리를 실행한 사용자의 이름입니다.
* `query_id` ([String](/ko/reference/data-types/string)) — 쿼리 ID.
* `address` ([IPv6](/ko/reference/data-types/ipv6)) — 쿼리에 사용된 IP 주소입니다. 프록시를 통해 연결되었고 `auth_use_forwarded_address`가 설정된 경우, 이 값은 프록시 주소가 아니라 클라이언트 주소입니다.
* `port` ([UInt16](/ko/reference/data-types/int-uint)) — 쿼리에 사용된 클라이언트 포트입니다. 프록시를 통해 연결되고 `auth_use_forwarded_address`가 설정된 경우, 이 값은 프록시 포트가 아니라 클라이언트 포트입니다.
* `initial_user` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 동일한 쿼리 체인에서 초기 쿼리를 실행한 사용자의 이름입니다.
* `initial_query_id` ([String](/ko/reference/data-types/string)) — 동일한 쿼리 체인에 있는 초기 쿼리 ID입니다.
* `initial_address` ([IPv6](/ko/reference/data-types/ipv6)) — 동일한 쿼리 체인에서 초기 쿼리가 시작된 IP 주소입니다.
* `initial_port` ([UInt16](/ko/reference/data-types/int-uint)) — 동일한 쿼리 체인에서 초기 쿼리가 시작된 클라이언트 포트입니다.
* `initial_query_start_time` ([DateTime](/ko/reference/data-types/datetime)) — 동일한 쿼리 체인에 있는 초기 쿼리의 시작 시간입니다.
* `initial_query_start_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 동일한 쿼리 체인에 있는 초기 쿼리의 시작 시간이며, 마이크로초 정밀도를 가집니다.
* `authenticated_user` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 세션에서 인증을 거친 사용자의 이름입니다.
* `interface` ([Enum8('Unknown' = 0, 'TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP\_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9, 'ArrowFlight' = 10)](/ko/reference/data-types/enum)) — 클라이언트가 보고한, 쿼리가 시작된 접속 인터페이스입니다. 보고된 인터페이스가 이 서버에서 인식할 수 없는 것이면 `Unknown`입니다.
* `is_secure` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 보안 인터페이스를 통해 실행되었는지를 나타내는 플래그
* `os_user` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client를 실행하는 운영체제 사용자 이름입니다.
* `client_hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client 또는 다른 TCP 클라이언트가 실행 중인 클라이언트 머신의 호스트명입니다.
* `client_name` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client 또는 기타 TCP 클라이언트 이름입니다.
* `client_agent` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 클라이언트를 호출한 AI 코딩 에이전트입니다(예: `claude-code`, `cursor`). 환경 변수에서 감지되며, 에이전트가 감지되지 않으면 빈 문자열입니다.
* `client_revision` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 버전입니다.
* `client_version_major` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 주 버전입니다.
* `client_version_minor` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 마이너 버전입니다.
* `client_version_patch` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트 버전의 패치 번호입니다.
* `script_query_number` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client에서 여러 쿼리를 포함한 스크립트의 쿼리 번호입니다.
* `script_line_number` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client에서 여러 쿼리가 포함된 스크립트 내 쿼리 시작 줄 번호입니다.
* `http_method` ([Enum8('UNKNOWN' = 0, 'GET' = 1, 'POST' = 2, 'OPTIONS' = 3, 'PUT' = 4, 'DELETE' = 5, 'HEAD' = 6)](/ko/reference/data-types/enum)) — 쿼리를 시작한 HTTP 메서드입니다. 쿼리가 HTTP를 통해 수신되지 않았거나 보고된 메서드가 이 서버에서 인식할 수 없는 것이면 `UNKNOWN`입니다.
* `http_user_agent` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — HTTP 쿼리로 전달되는 HTTP header UserAgent입니다.
* `http_referer` ([String](/ko/reference/data-types/string)) — HTTP 쿼리로 전달되는 HTTP 헤더 Referer(쿼리를 보내는 페이지의 절대 주소 또는 부분 주소를 포함합니다).
* `forwarded_for` ([String](/ko/reference/data-types/string)) — HTTP 쿼리와 함께 전달되는 HTTP 헤더 X-Forwarded-For입니다.
* `quota_key` ([String](/ko/reference/data-types/string)) — 쿼터 설정에서 지정된 quota 키입니다(keyed 참조).
* `distributed_depth` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리가 서버 사이에서 몇 번 전달되었는지.
* `revision` ([UInt32](/ko/reference/data-types/int-uint)) — ClickHouse 리비전.
* `http_handler_name` ([String](/ko/reference/data-types/string)) — 쿼리를 호출한 SQL로 정의된 HTTP handler(CREATE HANDLER)의 이름입니다. 이러한 handler를 통해 쿼리가 호출되지 않은 경우 빈 문자열입니다.
* `http_request_url` ([String](/ko/reference/data-types/string)) — 쿼리를 호출한 HTTP request 경로(쿼리 문자열 제외)입니다. 민감한 request 매개변수가 유지되지 않도록 쿼리 문자열은 생략됩니다. HTTP가 아닌 쿼리의 경우 빈 문자열입니다.
* `log_comment` ([String](/ko/reference/data-types/string)) — 로그 설명입니다. max\_query\_size를 초과하지 않는 임의의 문자열로 설정할 수 있습니다. 정의되지 않은 경우 빈 문자열입니다.
* `thread_ids` ([Array(UInt64)](/ko/reference/data-types/array)) — 쿼리 실행에 참여하는 스레드 ID입니다. 이러한 스레드가 동시에 실행된 것은 아닐 수 있습니다.
* `peak_threads_usage` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리를 실행하는 데 동시에 사용된 스레드 수의 최댓값입니다.
* `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/ko/reference/data-types/map)) — 여러 메트릭을 측정하는 ProfileEvents입니다. 이에 대한 설명은 system.events 테이블에서 확인할 수 있습니다.
* `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/ko/reference/data-types/map)) — 클라이언트가 쿼리를 실행할 때 변경된 설정입니다. 설정 변경 로깅을 활성화하려면 log\_query\_settings 매개변수를 1로 설정하십시오.
* `used_aggregate_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수의 정식 이름입니다.
* `used_aggregate_function_combinators` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수 combinator의 표준 이름입니다.
* `used_database_engines` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터베이스 엔진의 표준 이름입니다.
* `used_data_type_families` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터 타입 계열의 표준 이름입니다.
* `used_dictionaries` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 딕셔너리의 표준 이름입니다.
* `used_formats` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 포맷의 표준 이름입니다.
* `used_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 함수의 정식 이름입니다.
* `used_storages` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 스토리지의 표준 이름입니다.
* `used_table_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 테이블 함수의 표준 이름입니다.
* `used_executable_user_defined_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 실행형 사용자 정의 함수의 정식 이름입니다.
* `used_sql_user_defined_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 SQL 사용자 정의 함수의 정규 이름입니다.
* `used_row_policies` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 적용된 행 정책 이름의 목록입니다.
* `used_privileges` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 성공적으로 검증된 권한입니다.
* `missing_privileges` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 시 누락된 권한입니다.
* `used_number_of_joins` ([UInt64](/ko/reference/data-types/int-uint)) — 이 쿼리에서 실행된 물리적 조인의 수입니다. 파이프라인이 구성되는 시점에 수집되므로, 쿼리 텍스트에 있는 JOIN 절의 수가 아니라 모든 최적화를 거친 뒤 남은 조인을 반영합니다. 조인은 중첩 깊이와 관계없이 집계됩니다. 서브쿼리, 공통 테이블 표현식, 뷰, 뷰의 뷰, 그리고 INSERT에 의해 트리거된 materialized view의 SELECT는 모두 전송된 쿼리의 행에 보고되므로, 쿼리 텍스트 자체에 JOIN이 전혀 없는 쿼리에서도 이 값은 0이 아닐 수 있습니다. EXPLAIN PIPELINE처럼 파이프라인을 실행하지 않고 구성만 하는 쿼리는 설명 대상 쿼리의 조인을 보고합니다. 일부 파이프라인은 단일 쿼리가 실행되는 동안 여러 번 구성됩니다. materialized view의 SELECT는 이를 트리거하는 INSERT의 블록마다, 그리고 삽입 스트림마다 구성되고, 재귀 CTE의 재귀 멤버는 반복마다 구성되며, 루프의 relation은 재시작될 때마다 다시 구성됩니다. 그렇더라도 이러한 파이프라인의 조인은 한 번만 집계되므로, 이 값은 파이프라인이 구성된 횟수가 아니라 쿼리 자체를 나타냅니다.
* `used_join_algorithms` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — used\_number\_of\_joins에 집계된 조인의 알고리즘입니다: 'HASH', 'PARALLEL\_HASH', 'GRACE\_HASH', 'PARTIAL\_MERGE', 'FULL\_SORTING\_MERGE', 'PARALLEL\_FULL\_SORTING\_MERGE', 'IE\_JOIN', 'DIRECT', 'PASTE', 'CONSTANT'. 정렬 및 중복 제거되므로 여러 조인에서 공통으로 사용된 알고리즘은 한 번만 나타납니다. 이는 join\_algorithm 설정에서 허용하는 알고리즘이 아니라 각 조인을 실행하기 위해 실제로 선택된 알고리즘입니다. 실행 도중 알고리즘이 다른 알고리즘으로 대체될 수 있으며, 이 경우 두 알고리즘이 모두 보고됩니다.
* `used_join_kinds` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — used\_number\_of\_joins에 집계된 조인의 종류입니다. 조인마다 원소가 하나씩 있으므로 여러 조인에서 공통된 종류는 여러 번 나타납니다. 원소는 실행 순서가 아니라 정렬된 순서로 나열됩니다. 각 종류는 실제로 실행된 종류이며, 최적화기가 조인의 양쪽을 바꾸어 실행하면서 LEFT를 RIGHT로 바꿀 수 있으므로 쿼리 텍스트와 다를 수 있습니다.
* `used_join_strictness` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — used\_number\_of\_joins에 집계된 조인의 엄격성입니다. 조인마다 원소가 하나씩 있으며 used\_join\_kinds와 같은 순서입니다. 즉, 두 배열에서 같은 인덱스의 원소는 동일한 조인을 나타냅니다.
* `spilled_to_disk` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 디스크의 임시 파일에 데이터를 기록한(외부 메모리 처리) 연산자 목록으로, 정렬 및 중복 제거되어 있습니다. 빈 배열은 쿼리가 전부 메모리에서 실행되었음을 의미합니다.
* `transaction_id` ([Tuple(UInt64, UInt64, UUID, Int64)](/ko/reference/data-types/tuple)) — 이 쿼리가 실행된 트랜잭션의 식별자입니다.
* `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/ko/reference/data-types/enum)) — 쿼리 실행 중 쿼리 캐시 사용 여부입니다. 값: 'Unknown' = 상태를 알 수 없음, 'None' = 쿼리 결과가 쿼리 결과 캐시에 기록되지도 않았고 캐시에서 읽히지도 않음, 'Write' = 쿼리 결과가 쿼리 결과 캐시에 기록됨, 'Read' = 쿼리 결과가 쿼리 결과 캐시에서 읽힘.
* `asynchronous_read_counters` ([Map(LowCardinality(String), UInt64)](/ko/reference/data-types/map)) — 비동기 읽기 메트릭입니다.
* `is_internal` ([UInt8](/ko/reference/data-types/int-uint)) — 내부에서 실행되는 보조 쿼리인지 여부를 나타냅니다.

**별칭:**

* `ProfileEvents.Names` — `mapKeys(ProfileEvents)`의 별칭입니다.
* `ProfileEvents.Values` — `mapValues(ProfileEvents)`의 별칭입니다.
* `Settings.Names` — `mapKeys(Settings)`의 별칭입니다.
* `Settings.Values` — `mapValues(Settings)`의 별칭입니다.

## 예시

**기본 예시**

```sql theme={null}
SELECT *
FROM system.query_log
WHERE type = 'QueryFinish'
  AND is_initial_query = 1
ORDER BY query_start_time DESC
LIMIT 1
FORMAT Vertical;
```

```text theme={null}
Row 1:
──────
hostname:                              clickhouse.eu-central1.internal
type:                                  QueryFinish
event_date:                            2021-11-03
event_time:                            2021-11-03 16:13:54
event_time_microseconds:               2021-11-03 16:13:54.953024
query_start_time:                      2021-11-03 16:13:54
query_start_time_microseconds:         2021-11-03 16:13:54.952325
query_duration_ms:                     0
read_rows:                             69
read_bytes:                            6187
written_rows:                          0
written_bytes:                         0
result_rows:                           69
result_bytes:                          48256
memory_usage:                          0
current_database:                      default
query:                                 DESCRIBE TABLE system.query_log
formatted_query:
normalized_query_hash:                 8274064835331539124
query_kind:
databases:                             []
tables:                                []
columns:                               []
projections:                           []
views:                                 []
exception_code:                        0
exception:
stack_trace:
is_initial_query:                      1
user:                                  default
query_id:                              7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
address:                               ::ffff:127.0.0.1
port:                                  40452
initial_user:                          default
initial_query_id:                      7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
initial_address:                       ::ffff:127.0.0.1
initial_port:                          40452
initial_query_start_time:              2021-11-03 16:13:54
initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325
interface:                             TCP
os_user:                               sevirov
client_hostname:                       clickhouse.eu-central1.internal
client_name:                           ClickHouse
client_revision:                       54449
client_version_major:                  21
client_version_minor:                  10
client_version_patch:                  1
http_method:                           UNKNOWN
http_user_agent:
http_referer:
forwarded_for:
quota_key:
revision:                              54456
log_comment:
thread_ids:                            [30776,31174]
ProfileEvents:                         {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319}
Settings:                              {'load_balancing':'random','max_memory_usage':'10000000000'}
used_aggregate_functions:              []
used_aggregate_function_combinators:   []
used_database_engines:                 []
used_data_type_families:               []
used_dictionaries:                     []
used_formats:                          []
used_functions:                        []
used_storages:                         []
used_table_functions:                  []
used_executable_user_defined_functions:[]
used_sql_user_defined_functions:       []
used_privileges:                       []
missing_privileges:                    []
used_number_of_joins:                  0
used_join_algorithms:                  []
used_join_kinds:                       []
used_join_strictness:                  []
spilled_to_disk:                       []
query_cache_usage:                     None
```

**Cloud 예시**

ClickHouse Cloud에서는 `system.query_log`가 각 노드에 로컬로 저장되므로, 모든 항목을 보려면 [`clusterAllReplicas`](/ko/reference/functions/table-functions/cluster)를 통해 쿼리해야 합니다.

예를 들어, “default” 클러스터의 모든 레플리카에 있는 query\_log 행을 집계하려면 다음과 같이 작성할 수 있습니다.

```sql theme={null}
SELECT *
FROM clusterAllReplicas('default', system.query_log)
WHERE event_time >= now() - toIntervalHour(1)
LIMIT 10
SETTINGS skip_unavailable_shards = 1;
```

## 관련 항목

* [system.query\_thread\_log](/ko/reference/system-tables/query_thread_log) — 이 테이블에는 각 쿼리 실행 스레드에 대한 정보가 포함되어 있습니다.
* [system.session\_query\_ids](/ko/reference/system-tables/session_query_ids) — 이 테이블에는 현재 세션에서 실행된 쿼리의 쿼리 id가 포함되어 있어, 로그에서 자신의 쿼리를 찾는 데 사용할 수 있습니다.
