Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Preguntas frecuentes
Encuentre respuestas a las preguntas más frecuentes sobre cómo ajustar el rendimiento de las consultas.
¿Qué es EXPLAIN?
EXPLAINes una palabra clave que se añade a una consulta de PostgreSQL (SELECT,, UPDATEINSERT,DELETE) para generar un plan de consultas. El plan de consultas de PostgreSQL detalla cómo la base de datos pretende ejecutar la consulta. Este plan incluye información sobre el orden en que se escanea una tabla, el uso de los índices y las uniones.
Utilice el plan de consultas para identificar posibles obstáculos, optimizar las consultas y mejorar el rendimiento general. Al revisar el plan de consultas, tenga en cuenta los siguientes factores:
-
Enfoques de acceso a tablas
-
Unir enfoques
-
Condiciones de filtro
-
Ordenar operaciones
-
Uso de índices
-
Paralelismo
-
Statistics
-
Estimaciones de costos
-
Filas recuperadas de cada paso
-
Distribución de datos
Para obtener más información sobre EXPLAIN
¿Qué es EXPLAIN ANALYZE?
Al anteponer una consulta y EXPLAIN ANALYZE ejecutarla, PostgreSQL ejecuta la consulta y devuelve tanto el plan de consulta como las estadísticas de tiempo de ejecución. El tiempo de ejecución real, las filas procesadas en cada paso y otra información relevante se muestran junto con el plan de consulta. EXPLAIN ANALYZEEl uso en una base de datos de producción debe realizarse con precaución, ya que la ejecución de la consulta podría afectar al rendimiento de la base de datos durante el análisis.
Para obtener más información sobre EXPLAIN ANALYZE
¿Qué es la intercalación en PostgreSQL?
En PostgreSQL, una intercalación es un conjunto de reglas para determinar cómo se comparan y ordenan las cadenas. La intercalación define el orden en que se consideran los caracteres en las comparaciones, teniendo en cuenta las reglas y las conversiones específicas del idioma.
Para obtener más información sobre la intercalación
¿Qué es un CTE?
En una base de datos PostgreSQL, una expresión de tabla común (CTE) es un conjunto de resultados temporales con nombre al que puede hacer referencia. Los CTE proporcionan una forma de crear consultas SQL modulares y más legibles al dividir la lógica compleja en unidades con nombre más pequeñas.
Para obtener más información sobre los CTE
¿Cuáles son las categorías de funciones de PostgreSQL?
Cada función de PostgreSQL tiene una clasificación de volatilidad, cuyas posibilidades VOLATILE sonSTABLE, o: IMMUTABLE
-
VOLÁTIL: una
VOLATILEfunción puede hacer cualquier cosa, incluso modificar la base de datos. Puede devolver resultados diferentes en llamadas sucesivas con los mismos argumentos. El optimizador no hace suposiciones sobre el comportamiento de dichas funciones. Una consulta que utilice una función volátil volverá a evaluar la función en todas las filas en las que se necesite su valor. -
ESTABLE: una
STABLEfunción no puede modificar la base de datos. Se garantiza que devolverá los mismos resultados con los mismos argumentos para todas las filas de una sola sentencia. Al utilizar esta clasificación, el optimizador puede optimizar varias llamadas de la función para convertirlas en una sola llamada. En concreto, es seguro utilizar una expresión que contenga dicha función en una condición de escaneo de índices. (Como un escaneo de índices evaluará el valor de comparación solo una vez, no una vez en cada fila, no es válido usar unaVOLATILEfunción en una condición de escaneo de índices). -
INMUTABLE: una
IMMUTABLEfunción no puede modificar la base de datos y se garantiza que devolverá los mismos resultados con los mismos argumentos para siempre. Al usar esta clasificación, el optimizador puede preevaluar la función cuando una consulta la llama con argumentos constantes. Por ejemplo, una consulta como la que seSELECT ... WHERE x = 2 + 2puede simplificar a simple vistaSELECT ... WHERE x = 4, ya que la función subyacente al operador de suma de enteros está marcada.IMMUTABLE
VOLATILEes el valor predeterminado si el CREATE FUNCTION comando no especifica una categoría. Para obtener más información sobre los tipos de funciones