Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Han pasado algunos años desde que publiqué mi último libro. Muchas cosas han cambiado desde entonces. Se han publicado varias versiones de SQL Server. El producto se ha vuelto más maduro, ofreciendo compatibilidad con varios sistemas operativos y verdaderas capacidades aptas para la nube. Sin embargo, no creí que fuera el momento adecuado para publicar la nueva edición de Pro SQL Server Internals (Apress).
Había un par de razones para ello. Por muy buenas que fueran las nuevas funciones, no cambiaban fundamentalmente el funcionamiento del producto. La mayor parte del contenido de mis antiguos libros podía aplicarse a SQL Server 2017, SQL Server 2019 e incluso a las próximas versiones de SQL Server 2022. Y lo que es más importante, quería escribir el libro de una forma diferente.
Tal vez sea necesario que me explaye. Como algunos sabréis, llevo muchos años impartiendo cursos de SQL Server, y consideraba mis libros como material complementario para ellos. De hecho, empecé a escribir porque quería presentar el contenido en un formato más estructurado, no Power Point. Me alegro de que a mis lectores les gustara y encontraran los libros especialmente útiles.
Todos mis cursos se centraban en SQL Server Internals. Siempre he creído que cualquier profesional necesita conocer sus herramientas para tener éxito. Enseñaba a mi audiencia cómo funciona SQL Server, ayudándoles a utilizar estos conocimientos y a crear sistemas eficaces. Con el tiempo, sin embargo, descubrí que la solución de problemas y el ajuste del rendimiento se convirtieron en el tema más popular de mis clases: a la gente le gusta cuando empiezo por el problema y luego explico por qué se produce.
Al cambiar mi forma de enseñar, también decidí cambiar mi forma de escribir. Ahora, 18 meses después, observo el resultado de esa decisión. Personalmente, me gusta el resultado. Sigue siendo sobre SQL Server Internals, aunque es conciso y más práctico que cualquiera de mis obras anteriores. Te proporcionará conocimientos suficientes para detectar y abordar los principales problemas del sistema, reduciendo la sobrecarga de información. También te indicará la dirección correcta si quieres saber más.
Este libro describe la metodología utilizada por muchos consultores de SQL Server de alto nivel. Aprenderás a recopilar y analizar los datos, detectando cuellos de botella e ineficiencias. Y lo que es más importante, te mostraré cómo contemplar el sistema de forma holística y evitar la visión de túnel.
El contenido no es específico de la versión de SQL Server. Salvo algunas excepciones, se aplicaría a todas las versiones, desde SQL Server 2005 hasta SQL Server 2022, que se lanzará próximamente, y posteriores. También sirve para los servicios gestionados de SQL Server que se ejecutan en la nube.
A quién va dirigido este libro
Cuando me preguntan a qué público van dirigidos mis libros, siempre digo que escribo para profesionales de bases de datos. Utilizo ese término a propósito: creo que la línea que separa a los administradores de bases de datos, los desarrolladores de bases de datos e incluso los desarrolladores de aplicaciones es bastante delgada. Hoy en día es imposible tener éxito en TI si te limitas y no amplías tu área de experiencia y responsabilidades.
Es especialmente importante con la cultura DevOps. Los equipos se convierten en los dueños de sus destinos, desarrollando y manteniendo soluciones por su cuenta. Se hace habitual que los desarrolladores solucionen problemas de rendimiento que pueden estar causados por la infraestructura o por un código de base de datos ineficiente.
En definitiva, si trabajas con SQL Server en cualquier función -en las instalaciones y en la nube-, este libro es para ti. Espero que encuentres información útil independientemente de cuál sea tu puesto de trabajo.
Gracias de nuevo por confiar en mí y ¡espero que disfrutes leyéndolo tanto como yo mientras lo escribía para ti!
Resumen de los capítulos
Este libro consta de 16 capítulos estructurados de la siguiente manera:
- El Capítulo 1, "Instalación y configuración de SQL Server", proporciona varias directrices y buenas prácticas sobre cómo elegir el hardware y configurar las instancias de SQL Server.
- El capítulo 2, "Modelo de ejecución de SQL Server y estadísticas de espera", trata de un componente vital de SQL Server -el SQLOS- y te presenta la técnica habitual de solución de problemas denominada Estadísticas de espera. Este capítulo es la piedra angular del contenido del libro.
- El Capítulo 3, "Rendimiento del subsistema de disco", te ofrece una visión general de cómo funciona SQL Server con el subsistema de E/S y te muestra cómo analizar y solucionar sus problemas de rendimiento.
- Enel Capítulo 4, "Consultas ineficaces", se habla de algunos métodos que te permiten detectar consultas no optimizadas y elegir objetivos para afinar más las consultas.
- El Capítulo 5, "Almacenamiento de datos y ajuste deconsultas", explica cómo trabaja SQL Server con los datos de la base de datos, y comparte el conjunto de consejos y técnicas de ajuste de consultas.
- Enel Capítulo 6, "Carga de la CPU", se analizan las causas más comunes que provocan una alta carga de la CPU y las formas de mitigar los cuellos de botella de la CPU .
- El Capítulo 7, "Problemas de memoria", trata de la configuración de la memoria en SQL Server y te muestra cómo analizar el uso de la memoria y solucionar los problemas relacionados con ella.
- El capítulo 8, "Bloqueo, bloqueo y concurrencia", habla del modelo de concurrencia de SQL Server y de cómo solucionar los bloqueos y bloqueos muertos del sistema.
- El capítulo 9, "Utilización y rendimiento de tempdb", trata sobre la utilización de
tempdb
y las buenas prácticas de configuración. También proporciona algunas directrices sobre el uso óptimo de los objetos temporales y muestra cómo mitigar los cuellos de botella habituales detempdb
. - El capítulo 10, "Latches", habla de los latches en SQL Server. Trata varios casos en los que pueden convertirse en un problema y las formas de solucionarlo.
- El Capítulo 11, "Registro de Transacciones", ofrece una visión general de cómo funciona SQL Server con un registro de transacciones y explica cómo hacer frente a los cuellos de botella y las condiciones de error más comunes.
- El capítulo 12, "Grupos de disponibilidad AlwaysOn", trata de la tecnología de Alta Disponibilidad de SQL Server que se utiliza con más frecuencia y de los problemas habituales que puedes encontrar en esa configuración.
- El capítulo 13, "Otros tipos de espera notables", trata de varios tipos de espera comunes que no se han tratado en otros capítulos.
- El Capítulo 14, "Análisis del esquema y de los índices de la base de datos", te da algunos consejos para detectar ineficiencias en el diseño de la base de datos y también para evaluar el uso y la salud de los índices.
- El capítulo 15, "SQL Server en entornos virtualizados", habla de las buenas prácticas de configuración y resolución de problemas de las instancias virtualizadas de SQL Server.
- El capítulo 16, "SQL Server en la nube", trata de cómo configurar y utilizar SQL Server en máquinas virtuales en la nube. También proporciona una visión general de los servicios gestionados de SQL Server disponibles en Microsoft Azure, Amazon AWS y Google GCP.
Cada capítulo terminará con una "Lista de comprobación para la resolución de problemas" que cubre los pasos más importantes para la resolución de problemas del tema tratado en el capítulo.
Por último, utiliza el Apéndice A, "Tipos de espera ", como referencia para los tipos de espera más comunes y las técnicas de solución de problemas cuando te encuentres con ellos durante el análisis.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/aboutsqlserver/code.
La carpeta Troubleshooting
Scripts
proporciona el conjunto de cuadernos de Azure Data Studio1 con scripts de diagnóstico y solución de problemas que utilicé en el libro. También puedes encontrar scripts y aplicaciones de ejemplo en la carpeta Companion Materials (Books)
.
A menos que se indique lo contrario, los scripts funcionarán en todas las versiones de SQL Server a partir de SQL Server 2005. Aunque algunas columnas de la vista de gestión dinámica pueden no estar soportadas en las versiones antiguas y tendrías que comentarlas.
Estoy planeando mantener y ampliar la biblioteca de scripts de diagnóstico; comprueba el repositorio para ver si hay actualizaciones en el futuro.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos, pero generalmente no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "SQL Server Advanced Troubleshooting and Performance Tuning " por Dmitri Korotkevitch (O'Reilly). Copyright 2022 Dmitri Korotkevitch, 978-1-098-10192-3".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/sql-server-advanced.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.
Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media
Síguenos en Twitter: https://twitter.com/oreillymedia
Míranos en YouTube: https://youtube.com/oreillymedia
Cómo contactar con el autor
Puedes enviarme un correo electrónico a dk@aboutsqlserver.com si tienes alguna pregunta sobre el libro o sobre SQL Server en general. Siempre estoy dispuesto a ayudar en todo lo que pueda.
También puedes visitar mi blog en https://aboutsqlserver.com. Ahora que el libro está publicado, ¡prometo bloguear más!
Agradecimientos
En primer lugar y como siempre, me gustaría dar las gracias a mi familia por su continua ayuda y apoyo. Escribir me da la excusa perfecta para evitar las tareas cotidianas. ¡Aún no entiendo por qué puedo salirme con la mía!
Además, estoy enormemente agradecido a Erland Sommarskog, Thomas Grohser y Uwe Ricken, que hicieron un gran trabajo revisando el manuscrito. Sus contribuciones mejoraron drásticamente el contenido, dándole su forma final.
Erland Sommarskog lleva treinta años trabajando con SQL Server, y es MVP de la Plataforma de Datos de Microsoft desde 2001. Trabaja como consultor independiente en Estocolmo (Suecia). Le apasiona compartir sus conocimientos y experiencia con la comunidad. Cuando no está jugando con SQL Server, juega al bridge y le gusta viajar.
Thomas Grohser es profesional de TI desde hace más de 35 años y MVP de la Plataforma de Datos de Microsoft desde hace 12 años. Lleva utilizando SQL Server desde 1994 y está especializado en arquitectura e implementación de bases de datos de alta seguridad, disponibilidad, recuperación y rendimiento, así como en su infraestructura subyacente. En su tiempo libre, a Thomas le encanta compartir los conocimientos adquiridos a lo largo de décadas con la comunidad de SQL Server y de la plataforma de datos, dando charlas en grupos de usuarios y conferencias de todo el mundo.
Uwe Ricken es un Microsoft Data Platform MVP y Microsoft Certified Master (SQL Server 2008) con sede en Frankfurt, Alemania. Uwe ha trabajado con SQL Server desde 2007, especializándose en el funcionamiento interno de bases de datos, indexación y arquitectura y desarrollo de bases de datos. Habla con regularidad en varias conferencias y eventos sobre SQL Server, y tiene un blog en http://www.sqlmaster.de.
¡Muchas gracias, Erland, Thomas y Uwe! ¡He disfrutado mucho del viaje!
Muchas gracias a mi colega Andre Fiano, uno de los ingenieros de infraestructuras más expertos que he conocido. Con el tiempo aprendí bastantes cosas de Andre, y también me ayudó a preparar algunas demostraciones utilizadas en este libro.
Y, por supuesto, me gustaría dar las gracias a todo el equipo de O'Reilly y especialmente a Sarah Grey, Elizabeth Kelly, Kate Dullea, Kristen Brown y Audrey Doyle. ¡Gracias por mantener mi inglés sonando verosímil y por dar la impresión de que sé dibujar diagramas!
Este libro trata sobre SQL Server, y quiero dar las gracias al equipo de ingenieros de Microsoft por su duro trabajo en el producto. Estoy muy ansioso por ver cómo evolucionará en el futuro.
Por último, pero no por ello menos importante, ¡me gustaría dar las gracias a todos mis amigos de #SQLFamily por todo vuestro apoyo y ánimos! ¡Es un placer escribir para un público tan maravilloso!
¡Gracias a todos!
1 Puedes descargar Azure Data Studio desde el sitio web de Microsoft.
Get Solución avanzada de problemas y ajuste del rendimiento de SQL Server now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.