¿Qué recursos existen para el ajuste del rendimiento de la base de datos?

¿Qué buenos recursos existen para comprender el ajuste de la base de datos en los principales motores y avanzar en su conocimiento en esa área?

La idea de esta pregunta es recolectar la cantidad de recursos que invariablemente existen, de modo que las personas puedan tener una tienda de conocimientos “integral” de los recursos aprobados por pares.


General SQL

  • Libro: Sintonización de rendimiento de SQL
  • Libro: Sintonización SQL
  • Libro: El arte de SQL
  • Libro: Refactorización de aplicaciones SQL
  • Libro: Ajuste de la base de datos: principios, experimentos y técnicas de solución de problemas
  • Usa el índice, Luke! – Una guía para el rendimiento de la base de datos para desarrolladores

PostgreSQL ( wiki ) ( PGsearch )

  • Optimización del rendimiento
  • Rápida optimización PostgreSQL
  • Explicar Analizar Intérprete
  • Consejos de rendimiento de PostgreSQL
  • Libro: Alto rendimiento de PostgreSQL 9.0

MySQL

  • Características ocultas de MySQL
  • Libro: Alto rendimiento MySQL / Blog: Alto rendimiento MySQL
  • Blog: Xaprb (para MySQL DBA)

Oráculo

  • ¿Cómo interpretas el plan de explicación de una consulta?
  • Scripts de ajuste avanzado de Oracle
  • Guía de ajuste del rendimiento de la base de datos Oracle
  • Pregunta Tom
  • Referencia de Oracle Database SQL
  • Libro: Comprender el rendimiento de Oracle
  • Libro: Optimización del rendimiento de Oracle
  • Libro: solución de problemas de rendimiento de Oracle
  • Libro: Fundamentos de Oracle basados ​​en costos

Servidor MS SQL

  • Rendimiento del servidor SQL
  • eBook: servidor SQL de alto rendimiento
  • SO Pregunta: ¿Cuáles son las mejores técnicas de optimización de rendimiento de SQL Server?
  • Página de adaptación Perf de Brent Ozar
  • Página de ajuste de Perf SqlServerPedia
  • Libro: Sql Server 2008 Internals
  • Cómo identificar consultas de ejecución lenta con SQL Profiler

Sybase SQL Anywhere

  • Blog: SQL Anywhere
  • Libro: SQL Anywhere Studio 9 Guía del desarrollador

JDBC

  • Consejos de rendimiento JDBC

El propio Tom Kyte de Oracle tiene un depósito fantástico en cada tipo de problema de rendimiento imaginable en http://asktom.oracle.com . Por lo general, se toma el tiempo para recrear problemas específicos y brinda explicaciones muy detalladas.

La respuesta de este tipo a una pregunta no idéntica probablemente sea un buen comienzo.

Características ocultas de MySQL

Y algo para PostgreSQL: “Optimización del rendimiento” en la wiki oficial.

Si está utilizando una base de datos Oracle, esta guía también puede ayudar. http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/toc.htm

Para MySQL, el ajuste de rendimiento ‘biblia’ es High Performance MySQL

Quick PostgreSQL Optimization (optimización de consultas)

Lectura breve, explica muchas cosas bien y ‘funciona’, un ejemplo real que es agradable para aquellos de nosotros que aprendemos mejor de esa manera.

Después de ver el enlace de la wiki a PostgreSQL, pensé que editaría esta publicación con enlaces para documentos de mysql / oracle , en realidad no es una guía de optimización específica, pero ambos son buenos recursos, especialmente el de MySQL. Para la optimización y cualquier otra característica de ajuste.

SO tiene una buena aquí: ¿Cómo interpretas el plan de explicación de una consulta?

Se pueden encontrar muchos buenos consejos específicos de MySQL en http://www.mysqlperformanceblog.com/

Añadiría que además de tener su base de datos teóricamente sintonizada, debe perfilar su aplicación utilizando un generador de perfiles que rastrea las llamadas SQL.

A pesar de sus mejores intenciones, algunas llamadas malas se infiltrarán en su aplicación y, a menudo, causarán el 90% de sus problemas relacionados con el rendimiento.

Si busca referencias de ajuste de rendimiento específicas de SQL Server, hay una gran cantidad de recursos de calidad disponibles en línea, desde documentos técnicos sobre la implementación de tecnologías específicas como particiones, hasta excelentes blogs que detallan instrucciones paso a paso sobre cómo ajustar el rendimiento. plataforma de servidor sql.

El complemento desvergonzado es el siguiente: puede comenzar su investigación revisando el área de ajuste de rendimiento de mi blog personal, o para cualquier requisito / problema específico de SQL Server, no dude en enviarme un correo electrónico.

Recursos de SQL Server

Sitio decente de rendimiento de SQL Server para información específica de MSSQL.

  • Libro: Solución de problemas de Oracle Performance (Antognini Christian)

Cómo identificar consultas de ejecución lenta con SQL Profiler es un buen tutorial sobre cómo identificar consultas de ejecución lenta. Esto permitirá que uno centre su atención donde más se necesita.

http://explain.depesz.com/

  • le ayuda a interpretar el resultado de EXPLAIN ANALYZE de PostgreSQL .

El capítulo entero Consejos de rendimiento en los documentos de PostgreSQL vale la pena leerlo.

“SQL Performance Tuning” http://books.google.com/books?id=3H9CC54qYeEC&dq=sql+performance+tuning&printsec=frontcover&source=bn&hl=en&ei=1dDoSYmjMOrlnQfX-bSYBw&sa=X&oi=book_result&ct=result&resnum=4 cubre la mayoría de los principales DBMS – cómo escribir consultas SQL multiplataforma de alto rendimiento, etc.

Aquí hay otro libro de gran prestigio que es neutral en la plataforma:

Sintonización SQL de Dan Tow : generación de planes de ejecución óptimos

Contiene algunos ejemplos específicos para Oracle, MS SQL e IBM DB2, pero las técnicas involucradas también deberían aplicarse a otras plataformas.

Para SQL Server, principalmente uso:

  • Página de adaptación Perf de Brent Ozar

  • Página de ajuste de Perf SqlServerPedia

Xaprb es un blog imprescindible para los administradores de bases de datos de MySQL. El autor ha escrito un libro sobre MySQL de alto rendimiento

Para los pocos que trabajan con Sybase SQL Anywhere, solo puedo recomendar el blog de Breck Carter y su SQL Anywhere Studio 9 Guía del desarrollador

Estuve muy feliz cuando vi esta forma de ver rápidamente lo que sucedió con una statement de SQL que estás ajustando bajo Oracle. Cambie la primera instrucción SQL a continuación a su instrucción SELECT y mantenga esa sugerencia allí.

SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL; SELECT * FROM TABLE(dbms_xplan.display_cursor( NULL, NULL, 'RUNSTATS_LAST')) ; PLAN_TABLE_OUTPUT ----------------------------------------------------- SQL_ID 5z36y0tq909a8, child number 0 ------------------------------------- SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL Plan hash value: 272002086 --------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | --------------------------------------------------------------------------------------------- | 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.02 | 3 | 2 | --------------------------------------------------------------------------------------------- 12 rows selected. 

Dónde:

  • E-Filas es filas estimadas.
  • A-Filas son filas reales.
  • A-Time es el tiempo real.
  • Buffers es buffers reales.

Cuando el plan estimado varía de la ejecución real en órdenes de magnitud, usted sabe que tiene problemas.

Para las personas que trabajan con Oracle, recomiendo este enlace ………….

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm

A partir de mis experiencias con el desarrollo de bases de datos Oracle, descubrí que desarrollar un conocimiento sobre cómo usar SQL, cómo funciona y saber qué está disponible (funciones provistas, cláusulas que no sabía existían o mejoraban a partir de la última versión) significa Paso mucho menos tiempo teniendo que ajustar sql.

Comenzaría por comprender cómo funciona la base de datos en un nivel fundamental. Cómo se almacenan los datos en el disco, qué hace la creación de un índice, cómo funciona la optimización del plan de consulta, cómo se almacenan en caché los planes, cuándo caducan los planes en caché.

Si puede confiar todo eso a la memoria, la mayoría de los consejos sobre la sintonización parece obvio.

Aquí hay un gran libro para MSSQL

SQL Server Internals

Para Oracle, Oracle basado en costos: Fundamentals de Jonathan Lewis .

A veces necesita saber cómo solucionar el problema una vez que se identifica. Esto mostrará formas de reemplazar un cursor de mal rendimiento con una operación basada en conjuntos: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them

Era específico de SQL Server, pero muchas de las técnicas también podrían transladarse a otros dbs.

Para Microsoft SQL, recomendaría los libros de Kalen Delaney (y otros) llamados “Inside SQL Server”. Ofrecen una buena visión de las partes internas de SQL Server, lo que permite a los lectores informarse sobre por qué determinadas declaraciones pueden ser más rápidas que otras.

Dentro de SQL Server 7.0
Dentro de SQL Server 2000
Dentro de Microsoft SQL Server 2005
Microsoft SQL Server 2008 Internals

También hay un libro dedicado a la optimización del rendimiento de las consultas de SQL Server 2008: SQL Server Performance Tuning Distilled

También me gustan los blogs de Paul Randal y Kimberly Tripp en SQLSkills.com. Están llenos de consejos SQL sólidos:

El blog de Paul
El blog de Kimberly

Para el ajuste del rendimiento de SQL Server, Itzik Ben-Gan es una leyenda.

Puede encontrar sus muchos libros detallados aquí, todos con su estilo habitual de medición empírica para probar su caso: http://tsql.solidq.com/books/index.htm

Si está buscando la solución más rápida para un problema de t-sql, agregue la palabra ‘itzik’ a su término de búsqueda de Google.

Itzik Ben-Gan ha sido mencionado más de 600 veces aquí en stackoverflow , pero no podía creer que no encontrara ni una sola mención de él aquí en esta pregunta de ajuste de rendimiento.

Como recurso adicional, también puedes encontrar algunos videos de Itzik hablando de cosas relacionadas con el rendimiento aquí en youtube .

Sitios de Oracle

  1. Guía de ajuste de rendimiento de 2 días http://docs.oracle.com/cd/E11882_01/server.112/e10822/toc.htm
  2. Guía de ajuste de rendimiento http://docs.oracle.com/cd/E36909_01/server.1111/e16638/toc.htm

Libros de Oracle

  1. Oracle Core: Essential Internals para DBAs y Desarrolladores por Jonathan Lewis
  2. Arquitectura experta de base de datos Oracle: Oracle Database 9i, 10g y 11g Técnicas de progtwigción y soluciones de Thomas Kyte
  3. Sintonización SQL de Dan Tow
  4. Sugerencias y técnicas de ajuste de rendimiento de Oracle Database 11g versión 2 (Oracle Press) por Richard Niemiec