Compartimos con ustedes el desafío de optimizar consultas en SQL Server. Primero vamos a ver cómo medimos la velocidad. Seguramente es más fácil mejorar algo cuando podemos medirlo que cuando no.
Después veremos de qué factores depende la velocidad a la cual se ejecutan las cosas en SQL Server. Y por último la técnica para optimizar consultas en SQL Server.
¿Cómo medimos la velocidad de una consulta en SQL Server?
Para saber cómo medimos la velocidad podemos recurrir al plan de ejecución. El plan de ejecución viene en dos variables. La primera es el plan previsto de ejecución y otra es el plan utilizado de ejecución. Uno es cuando lo estoy por hacer pero no lo hice, y el otro cuando ya lo hicimos. Este último tiene la verdad.
Utilizar el plan de ejecución real puede ser un problema. A veces la consulta es muy pesada y no podemos medirla primero para utilizarla después, queremos ya que se ejecute pronto. Podemos empezar a trabajar en esa optimización de consultas en SQL Server a partir del plan.
¿De qué depende la velocidad de consulta en SQL Server?
Un poco va a depender de la potencia del servidor, otro poco pero no tanto va a depender de cómo están diseñados los datos y finalmente va a depender de la consulta.
Potencia del servidor SQL Server
Una de las cosas más importantes para un motor de bases de datos es la memoria. El servidor de bases de datos utiliza un montón de memoria que le habilitamos para guardar ahí las páginas, guarda ahí todas las páginas que son frecuentemente usadas.
Mientras más memoria tengo mejor me va. Si la máquina la usamos solo para servidor, dejamos solo un poco de memoria para que corra el S.O. y el grueso se lo asignamos al servidor de bases de datos, pero si la computadora es de uso personal no parece una buena opción.
Memorias del servidor para SQL Server
El otro elemento que va a importar es la velocidad de los discos. Hay discos que tienen más velocidad que otros. Los SSD son muchos más rápidos para lo que es entrada/salida aleatoria que un disco rigido.
Es vital tener la base de datos temporaria en la cual guarda los objetos auxiliares que construye para resolver las consultas en un disco de estado sólido.
Otra cosa que puede ayudar es la cantidad de discos. Si tengo varios discos trabajando en paralelo puedo beneficiarme un caudal de información más grande.