Inicio rápido
Habilitar el perfilado
API del perfilador
Obtener el perfilador
report()
Salida de ejemplo:
- Duración en milisegundos de cada paso
- Porcentaje del tiempo con respecto al padre/al total
- Anidamiento jerárquico de operaciones
- Metadatos de cada paso (p. ej.,
ops_count,ops)
step()
clear()
summary()
Comprender el informe
Nombres de los pasos
Duración
- Pasos de planificación (Planificación de consultas): Suelen ser rápidos
- Pasos de ejecución (Ejecución de SQL): Donde se realiza el trabajo real
- Pasos de transferencia (Resultado a DataFrame): Conversión de datos a pandas
Identificación de cuellos de botella
Patrones de perfilado
Perfilar una sola consulta
Perfilar varias consultas
Comparar enfoques
Consejos para la optimización
1. Compruebe el tiempo de ejecución de SQL
SQL execution es el cuello de botella:
- Añada más filtros para reducir los datos
- Use Parquet en lugar de CSV
- Compruebe que haya índices adecuados (para fuentes de datos de bases de datos)
2. Verifique el tiempo de E/S
read_csv o read_parquet es el cuello de botella:
- Use Parquet (columnar, comprimido)
- Lea solo las columnas necesarias
- Filtre en origen si es posible
3. Comprobar la transferencia de datos
to_df es lento:
- El conjunto de resultados puede ser demasiado grande
- Añade más filtros o un límite
- Usa
head()para obtener una vista previa