Skip to content

Cómo hacer consultas más rápidas en SQL Server

Problemas con los programas y servidores pueden ser una comida de todos los días en el lugar donde trabajamos. Y particularmente cuando las personas empiezan a hablar de «lentitud». Cuando ya intentamos todo con los servidores, aplicaciones, código, recursos, nos queda solo una cosa, y es la base de datos. Entonces nos preguntamos qué podríamos hacer para tener consultas más rápidas en SQL Server.

Si me preguntas, personalmente yo prefiero ir en el sentido contrario. Sin dudar un segundo yo empiezo midiendo el rendimiento de las Bases de Datos y a partir de toda la información que se pueda recabar, puedo empezar a direccionar revisiones fuera de SQL Server.

consultas-mas-rapidas-en-sql-server

Encontré que el problema es de SQL Server

¿Ahora qué?

Habiendo identificado una o varias consultas problemáticas, ahora es un buen momento para pensar qué alternativas tenemos para hacer un cambio que permita darle mayor velocidad a estos queries.

¿Cuáles son las alternativas?

  • Tuning del Código
  • Mejorar hardware

¿Cuál crees que es más costoso?


Decisiones que debemos tomar para tener consultas más rápidas en SQL Server

Obviamente comprar hardware superior al que nos causa las sensaciones de lentitud puede ayudarnos de cierta manera. Sin embargo, el nuevo hardware no es una solución de fondo a los problemas.

De seguro ya has intentado diferentes opciones para tratar de mejorar tu velocidad. Tengo que decirte que, muchas cosas de las que pensabas tenían bastante lógica pueden estar erradas, y muchas de las cosas que has visto en diferentes publicaciones en la web pueden estar mal entendidas.

– Más procesadores

Tener más cores en un servidor no te garantiza mayor velocidad solo porque sí. Muchas veces pensamos que con más procesadores podremos hacer mayor esfuerzo y esto no es del todo cierto.

Es diferente cuando hablamos de procesos en paralelo en una ejecución, lo que nos lleva a aplicar paralelismo en nuestros planes de ejecución. Vital en este punto que puedas comprender el paralelismo en SQL Server.

– Cada tabla con NOLOCK

Esta es clásica. El consejo más visto en toda la historia de SQL Server que promete dar velocidad a todas tus consultas. Lamento decirte esto, pero esta promesa es más falsa que un billete de 3 dólares.

Es probable que pienses que esto no es cierto porque en este momento puedes estar pensando justo en esa consulta que el NOLOCK permitió hacer volar a la aplicación. Acá te pido que puedas ver qué significa utilizar NOLOCK en SQL Server antes de tomar decisiones precipitadas.

– Índices a las tablas

Acá la pregunta del millón es ¿dónde colocarlos? Y de seguro que entre las primeras respuestas están: las columnas con las que se hacen las búsquedas y las columnas necesitan un orden. Pero, ¿creo varios índices separados o uno con todas las columnas? Esto sí puede tener diferentes respuestas.

¿Has visto que en los planes de ejecución a veces tenemos un mensaje de letras verdes que nos dice «Missing Index«? Acá tenemos una sugerencia de índices faltantes, tómalo como tal. Olvídate de crearlos sin dudar, primero entiende qué significan estas recomendaciones, después puedes obtener una lista de todos los Missing Index para analizarlos.


Para terminar

Esta lista puede continuar por mucho ya que hay muchos factores que podemos evaluar para buscar generar consultas más rápidas en SQL Server.

Un consejo que siempre lo tengo presente en cada publicación que hago y en cada sesión en vivo, es el darle la importancia al Testing. Medir, comparar, probar nuestras consultas nos ayudarán a encontrar las mejores alternativas.

No compares los ambientes. Es otra típica el pensar en Desarrollo vs Producción. Lo importante también es entender de dónde vienen las diferencias.

Para recibir las invitaciones a los eventos gratuitos en línea o clases presenciales en las ciudades que visitamos y noticias semanales, no te olvides suscribirte a la página de Datoptim en este enlace.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Carrito
Volver arriba