funciones ejemplos desde consultas complejas comandos cero aprender sql postgresql performance

ejemplos - ¿Guías para el ajuste de consultas PostgreSQL?



funciones en postgresql (6)

He encontrado una serie de recursos que hablan sobre el ajuste del servidor de base de datos, pero no he encontrado mucho sobre el ajuste de las consultas individuales.

Por ejemplo, en Oracle, podría intentar agregar sugerencias para ignorar índices o usar combinaciones ordenadas o combinadas, pero no puedo encontrar mucho en el ajuste de Postgres que no sea el uso de combinaciones y recomendaciones explícitas cuando se cargan tablas en forma masiva .

¿Existe alguna guía de este tipo para poder centrarme en ajustar las consultas más ejecutadas y / o de bajo rendimiento, con suerte sin afectar negativamente a las consultas que actualmente tienen un buen desempeño?

Incluso me complacería encontrar algo que comparara cómo se realizaban ciertos tipos de consultas en relación con otras bases de datos, por lo que tenía una mejor idea de qué tipo de cosas evitar.

actualización :

Debería haberlo mencionado, tomé todas las clases de DBA de Oracle junto con sus clases de modelado de datos y ajuste de SQL en los días 8i ... así que sé sobre ''EXPLICAR'', pero eso es más para decirle qué está mal con el Consulta, no necesariamente cómo hacerlo mejor. (Por ejemplo, ¿se considera que ''while var = 1 o var = 2'' y ''while var in (1,2)'' son lo mismo cuando se genera un plan de ejecución? ¿Qué sucede si lo hago con 10 permutaciones? ¿Cuándo se realizan varias columnas? índices utilizados? ¿Hay formas de lograr que el planificador optimice para un inicio más rápido frente a un final más rápido? ¿Con qué tipo de ''errores'' puedo encontrar al moverme desde mySQL, Oracle o algún otro RDBMS?)

Podría escribir docenas de consultas complejas, si no cientos de formas, y espero no tener que probarlas todas y encontrar cuál funciona mejor a través de prueba y error. Ya encontré que ''SELECT count (*)'' no usará un índice, pero ''SELECT count (primary_key)'' ... tal vez un tipo de documento ''PostgreSQL para usuarios de SQL con experiencia'' que explicara tipos de consultas a evite, y cómo reescribirlos mejor, o cómo hacer que el planificador los maneje mejor.

actualización 2:

Encontré una comparación de diferentes implementaciones de SQL que cubren PostgreSQL, DB2, MS-SQL, mySQL, Oracle e Informix, y explica si, cómo, y qué hacer con las cosas que podría intentar hacer, y su sección de referencias vinculada a Oracle / SQL Server. / DB2 / Mckoi / MySQL Database Equivalents (que es lo que sugiere su título) y al wikibook SQL Dialects Reference que cubre cualquier contribución de la gente (incluye algunos DB2, SQLite, mySQL, PostgreSQL, Firebird, Vituoso, Oracle, MS-SQL, Ingres , y Linter).


En cuanto a las consultas mal realizadas, explique, analice y lea.

Puede poner el resultado de Explicar analizar en el sitio como explain.depesz.com , lo que le ayudará a encontrar los elementos que realmente demoran más tiempo.


Hay una buena herramienta en línea que toma la salida de EXPLAIN ANALYZE y le muestra gráficamente las partes críticas (por ejemplo, estimaciones erróneas, puntos calientes, etc.)

http://explain.depesz.com/help

Por cierto, creo que las consultas publicadas se vuelven públicas, y el enlace "explicaciones anteriores" se ha visto afectado por spambots.


La herramienta PGAdmin3 incluye una herramienta de explicación gráfica para desglosar cómo se maneja una consulta. También es especialmente útil para mostrar dónde se producen las exploraciones de tablas.



Para abordar su punto, desafortunadamente, la única manera de ajustar una consulta en Postgres es en gran medida ajustar la base de datos subyacente. En Oracle, puede configurar todas esas opciones sobre una base de consulta por consulta, superar el plan de optimizadores en el proceso, pero en Postgres, usted está prácticamente a merced del optimizador, para bien y para mal.