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.