He encontrado una serie de recursos que hablar acerca de la optimización del servidor de base de datos, pero no he encontrado mucho en la optimización de las consultas individuales.

Por ejemplo, en Oracle, que podría intentar añadir sugerencias para ignorar los índices o usar sort-merge vs correlación de las combinaciones, pero no puedo encontrar mucho sobre el ajuste de Postgres otros que el uso explícito une y recomendaciones a la hora de la carga a granel de las tablas.

Hacer cualquier guías existen para que yo pueda centrarse en la optimización de la mayoría de ejecutar y/o bajo rendimiento de las consultas, esperemos que sin afectar negativamente a la actualidad bien realizar consultas?

De que iba a ser feliz de encontrar algo que, en comparación con cómo ciertos tipos de consultas realizadas en relación a otras bases de datos, así que tuve una mejor idea de qué tipo de cosas a evitar.

actualización:

Yo debería haber dicho, me tomaron todos los DBA Oracle clases junto con sus datos de modelado y optimización de SQL. clases de nuevo en el 8i días … por lo que yo sé acerca de ‘EXPLICAR’, pero eso es más para decir lo que va mal con la consulta, no necesariamente la forma de hacerlo mejor. (por ejemplo, son ‘mientras var=1 o var=2’ y ‘mientras var en (1,2)’ considerada la misma a la hora de generar un plan de ejecución? Lo que si me estoy haciendo con 10 permutaciones? Cuando son multi-columna de índices que utilizan? Hay maneras de obtener el planificador para optimizar la forma más rápida de inicio vs acabado más rápido? Qué tipo de ‘trampas’ que podría ejecutar en cuando pasar de mySQL, Oracle o algún otro RDBMS?)

Podría escribir cualquier consulta compleja decenas, si no cientos de maneras, y espero no tener que probarlos todos y encontrar el que funciona mejor a través de ensayo y error. Ya he encontrado que ‘SELECT count (*) no utilizar un índice, pero ‘SELECT count(primary_key)’ se … tal vez un ‘PostgreSQL de la experiencia de los usuarios de SQL’ tipo de documento que explica los tipos de consultas para evitar, y la mejor manera de volver a escribir, o cómo conseguir el planificador para manejarlos mejor.

actualización 2:

He encontrado una Comparación de las diferentes Implementaciones de SQL que cubre PostgreSQL, DB2, MS-SQL, mySQL, Oracle e Informix, y explica si, cómo, y trampas en las cosas que usted podría tratar de hacer, y su sección de referencias vinculadas a Oracle /SQL Server /DB2 /Mckoi /MySQL Base de datos Equivalentes (que es lo que su título indica) y el wikibook Dialectos SQL Referencia que cubre lo que la gente de contribuir (incluye algunos DB2, SQLite, mySQL, PostgreSQL, Firebird, Vituoso, Oracle, MS-SQL, Ingres, y Desfibradora).

InformationsquelleAutor Joe | 2009-10-08

6 Comentarios

  1. 12

    Como para mal la realización de consultas – explicar analizar y leer.

    Usted puede poner a explicar analizar de salida en el sitio como explain.depesz.com – que le ayudará a encontrar los elementos que realmente tome la mayor parte del tiempo.

  2. 7

    No es una buena herramienta en línea que toma la salida de EXPLAIN ANALYZE, y gráficamente se muestra en las partes críticas (por ejemplo, mal estimaciones, puntos calientes, etc)

    http://explain.depesz.com/help

    Por cierto, creo que publican las consultas se convierten en público, y el anterior», explica» que el vínculo ha sido golpeado por spambots.

  3. 5

    A la dirección de tu punto de vista, por desgracia, la única manera de sintonizar una consulta en Postgres es bastante para sintonizar la base de datos subyacentes. En oracle, usted puede configurar todas las opciones en una consulta de consulta de base, el triunfo de los optimizadores de plan en el proceso, pero en Postgres, que está bastante a la merced de la optimizer, para el bien y para el mal.

  4. 4

    El PGAdmin3 herramienta incluye una explicación gráfica de la herramienta para romper cómo una consulta que se maneja. También es especialmente útil para mostrar tabla donde se producen los exámenes.

Dejar respuesta

Please enter your comment!
Please enter your name here