Skip to content

system.processes ​

A read-only snapshot of active requests. A request remains visible until its response write completes, whether it succeeds or fails. Membership does not depend on log_queries.

Columns ​

Name Meaning
query_id Current request identifier.
user Authenticated user.
interface TCP or HTTP interface.
current_database Selected database.
query Request SQL text.
query_kind Current statement classification.
elapsed Elapsed seconds.
address, port Client network endpoint.
initial_user, initial_query_id, initial_address, initial_port Initial request identity fields.
is_initial_query Initial-request flag.
is_internal Internal-request flag.
is_cancelled Cancellation status; server-side cancellation is unavailable.
is_all_data_sent Response-delivery status.
read_rows, read_bytes Observed read work.
written_rows, written_bytes Observed write work.
memory_usage, peak_memory_usage Current and peak accounted SQL memory.
total_rows_approx Available approximate total row count.
peak_threads_usage Maximum total query threads observed, including the main query thread.
normalized_query_hash Hash grouping structurally normalized SQL.

Counters ​

Memory counters cover accounted SQL allocations across the request's query threads, including when max_memory_usage is zero. Serial execution reports peak_threads_usage of 1.

Physical read counters can include rows later rejected by a filter. Deleted rows do not count as newly written rows. These observations describe work performed, rather than only the final returned row count.

Example ​

The observing query can see its own request:

sql
SELECT user, interface, query_kind
FROM system.processes
WHERE query LIKE '%processes%'
FORMAT csv;
text
"default","TCP","SELECT"

Always use the system qualifier. See query history for terminal events and request limits for accounting scope.