> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación de KILL

# Sentencias KILL

Hay dos tipos de sentencias KILL: una para finalizar una consulta y otra para finalizar una mutación

<div id="kill-query">
  ## KILL QUERY
</div>

```sql theme={null}
KILL QUERY [ON CLUSTER cluster]
  WHERE <where expression to SELECT FROM system.processes query>
  [SYNC|ASYNC|TEST]
  [FORMAT format]
```

Intenta finalizar por la fuerza las consultas que se están ejecutando actualmente.
Las consultas que se van a finalizar se seleccionan de la tabla `system.processes` mediante los criterios definidos en la cláusula `WHERE` de la consulta `KILL`.

Ejemplos:

Primero, tendrás que obtener la lista de consultas incompletas. Esta consulta SQL las muestra empezando por las que llevan más tiempo en ejecución:

Lista de un solo nodo de ClickHouse:

```sql theme={null}
SELECT
  initial_query_id,
  query_id,
  formatReadableTimeDelta(elapsed) AS time_delta,
  query,
  *
  FROM system.processes
  WHERE query ILIKE 'SELECT%'
  ORDER BY time_delta DESC;
```

Listado de un clúster de ClickHouse:

```sql theme={null}
SELECT
  initial_query_id,
  query_id,
  formatReadableTimeDelta(elapsed) AS time_delta,
  query,
  *
  FROM clusterAllReplicas(default, system.processes)
  WHERE query ILIKE 'SELECT%'
  ORDER BY time_delta DESC;
```

Cancele la consulta:

```sql theme={null}
-- Termina forzosamente todas las consultas con el query_id especificado:
KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'

-- Termina de forma síncrona todas las consultas ejecutadas por 'username':
KILL QUERY WHERE user='username' SYNC
```

<Tip>
  Si está terminando una consulta en ClickHouse Cloud o en un clúster autogestionado, asegúrese de usar la opción `ON CLUSTER [cluster-name]` para garantizar que la consulta se termine en todas las réplicas.
</Tip>

Los usuarios de solo lectura solo pueden detener sus propias consultas.

De forma predeterminada, se usa la versión asíncrona de las consultas (`ASYNC`), que no espera la confirmación de que las consultas se hayan detenido.

La versión síncrona (`SYNC`) espera a que todas las consultas se detengan y muestra información sobre cada proceso a medida que se detiene.
La respuesta contiene la columna `kill_status`, que puede tomar los siguientes valores:

1. `finished` – La consulta se terminó correctamente.
2. `waiting` – Esperando a que la consulta finalice después de enviarle una señal de terminación.
3. Los demás valores explican por qué la consulta no puede detenerse.

Una consulta de prueba (`TEST`) solo comprueba los permisos del usuario y muestra una lista de las consultas que se van a detener.

<div id="kill-mutation">
  ## KILL MUTATION
</div>

La presencia de mutaciones de larga duración o incompletas suele indicar que un servicio de ClickHouse funciona mal. La naturaleza asíncrona de las mutaciones puede hacer que consuman todos los recursos disponibles del sistema. Puede que necesite hacer una de estas dos cosas:

* Pausar todas las mutaciones nuevas, los `INSERT` y los `SELECT`, y permitir que la cola de mutaciones termine de procesarse.
* O eliminar manualmente algunas de estas mutaciones enviando un comando `KILL`.

```sql theme={null}
KILL MUTATION
  WHERE <where expression to SELECT FROM system.mutations query>
  [TEST]
  [FORMAT format]
```

Intenta cancelar y eliminar las [mutaciones](/es/reference/statements/alter#mutations) que se están ejecutando en ese momento. Las mutaciones que se van a cancelar se seleccionan de la tabla [`system.mutations`](/es/reference/system-tables/mutations) mediante el filtro especificado en la cláusula `WHERE` de la consulta `KILL`.

Una consulta de prueba (`TEST`) solo verifica los permisos del usuario y muestra una lista de mutaciones que se deben detener.

Ejemplos:

Obtener un `count()` del número de mutaciones incompletas:

Cantidad de mutaciones de un único nodo de ClickHouse:

```sql theme={null}
SELECT count(*)
FROM system.mutations
WHERE is_done = 0;
```

Número de mutaciones de un clúster de réplicas de ClickHouse:

```sql theme={null}
SELECT count(*)
FROM clusterAllReplicas('default', system.mutations)
WHERE is_done = 0;
```

Consulta la lista de mutaciones incompletas:

Lista de mutaciones de un solo nodo de ClickHouse:

```sql theme={null}
SELECT mutation_id, *
FROM system.mutations
WHERE is_done = 0;
```

Lista de mutaciones de un clúster de ClickHouse:

```sql theme={null}
SELECT mutation_id, *
FROM clusterAllReplicas('default', system.mutations)
WHERE is_done = 0;
```

Cancele las mutaciones según sea necesario:

```sql theme={null}
-- Cancelar y eliminar todas las mutaciones de la tabla individual:
KILL MUTATION WHERE database = 'default' AND table = 'table'

-- Cancelar la mutación específica:
KILL MUTATION WHERE database = 'default' AND table = 'table' AND mutation_id = 'mutation_3.txt'
```

La consulta es útil cuando una mutación está bloqueada y no puede finalizar (p. ej., si alguna función de la consulta de mutación lanza una excepción al aplicarse a los datos contenidos en la tabla).

Los cambios ya realizados por la mutación no se revierten.

<Note>
  La columna `is_killed=1` (solo ClickHouse Cloud) de la tabla [system.mutations](/es/reference/system-tables/mutations) no significa necesariamente que la mutación haya finalizado por completo. Es posible que una mutación permanezca durante un período prolongado en un estado en el que `is_killed=1` e `is_done=0`. Esto puede ocurrir si otra mutación de larga duración está bloqueando la mutación cancelada. Esta es una situación normal.
</Note>
