1. Glosario/

Partition Pruning

El Partition Pruning es el mecanismo por el cual Oracle, durante la ejecución de una query sobre una tabla particionada, identifica y excluye automáticamente las particiones que no pueden contener datos relevantes para el predicado de la query.

Cómo funciona #

Cuando una query incluye un predicado sobre la columna de partición (ej. WHERE data_movimento BETWEEN ...), Oracle consulta los metadatos de las particiones y determina cuáles contienen datos en el rango solicitado. Solo esas particiones se leen. En el plan de ejecución aparece como PARTITION RANGE SINGLE o PARTITION RANGE ITERATOR.

Para qué sirve #

En una tabla de 380 GB con particiones mensuales, una query sobre un solo mes lee solo ~4 GB en lugar de la tabla entera. El pruning transforma un full table scan de pesadilla en un full partition scan manejable, reduciendo el I/O en un 99%.

Cuándo se usa #

El pruning es automático, pero solo funciona con predicados directos sobre la columna de partición. Aplicar funciones a la columna (TRUNC(fecha), TO_CHAR(fecha)) desactiva el pruning y fuerza a Oracle a leer todas las particiones. Verificar siempre con EXPLAIN PLAN que el pruning esté activo.