014 - Técnicas de Optimización de Consultas en SQL Server

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 2

TÉCNICAS DE OPTIMIZACIÓN DE CONSULTAS EN SQL SERVER: CONSEJOS Y

TRUCOS DE APLICACIÓN

SQL Server (Structured Query Language) se convirtió en el lenguaje estándar de las


bases de datos «relacionales» y prácticamente todos los productos DBMS (DataBase
Management System) del mercado lo manejan en la actualidad. Esta estructura de
lenguaje ayuda a solucionar problemas específicos o relacionados con la definición,
manipulación e integridad de la información representada por los datos que se almacenan
en las bases de datos. Para su óptimo desempeño te daremos una serie de consejos y
trucos que siempre debes tener presente siempre que realices consultas:

 Usar nombres apropiados: Esto Ayuda a saber con qué se está trabajando
solamente viendo el nombre, así se ahorra tiempo y esfuerzo. Además, Añadir al
nombre de la tabla el propietario y el esquema hará más rápida nuestra consulta,
Si no lo ponemos SQL-Server buscará en todos los esquemas hasta encontrar el
objeto.

 Usar count (1) en lugar de count (*): Aunque hay muchas personas que afirman
que no hay diferencia si se usa uno o el otro, la realidad es otra: si se usa en una
base de datos grande, en lugar de tomar en consideración todas las columnas de
una tabla para hacer el cálculo, solo toma la primera columna. Esto hace que la
base de datos utilice menos recursos y, por consecuencia, ejecute más rápido. 

 NOT EXISTS en lugar de NOT IN: En el caso que tengamos que hacer uso del
comando NOT IN tendremos que tener especial cuidado en su uso ya que posee
un mal rendimiento ya que obliga al SQL Server Optmizer a realizar un SCAN, en
su lugar pude usar NOT EXISTS ya que posee un mejor rendimiento

 Utilizar la cláusula SET NOCOUNT ON: SQL-Server siempre devuelve la cuenta


del número de filas afectado por las consultas de INSERT, DELETE,
UPDATE y SELECT. Utilizar esta cláusula evitara esto y ahorra memoria y tiempo.

 Tablas temporales: SQL Server provee la manera de crear tablas temporales


dentro de la sesión del usuario. Estas tablas son útiles para almacenar información
que será utilizadas en múltiples ocasiones, Estas tablas están disponibles bajo la
sesión del usuario que las cree y serán destruidas una vez esa sesión termine.
Ten presente no usar variables de tipo table en los joins de las consultas, una
tabla temporal o una expresión de tabla común (CTE) te darán un mejor
rendimiento.

 No utilices las cláusulas Distinct, Group By y Order By si no es


indispensable: éstas sentencias consumen mucha memoria y generan una gran
cantidad de trabajo extra a SQL Server debido a que consume muchos recursos
que son necesarios para otras QUERIES que sean lanzadas dentro de la base de
datos. Sólo se deben usar si es necesario.
 No usar el comando GROUP BY sin una función de agregación: este comando
puede ejecutarse sin o con una función de agregación, pero si queremos obtener
un mejor rendimiento, no usaremos la cláusula GROUP BY sin una función de
agregación.

 DERIVED TABLES en lugar de TEMPORARY TABLES: Dependiendo de nuestra


consulta podemos usar tablas derivadas, ya que con este tipo de tablas
mejoramos el rendimiento de nuestra QUERY ya que se producen menos
operaciones de I/O sobre el servidor.

 Uso de índices: Los motores de bases de datos SQL pueden agregar índices a
ciertas columnas que aceleran las QUERIES. El uso correcto de índices puede
acelerar consultas en tablas con muchos registros, pero sobre todo, el mal uso de
ellos puedes traducirse en consultas muy lentas que afectan el rendimiento de la
página.

 Uso de la secuencia SET NOCOUNT ON: SQL-Server siempre devuelve la


cuenta del número de filas afectado por las consultas de INSERT, DELETE,
UPDATE y SELECT. Utilizar la cláusula SET NOCOUNT ON evitará esto
ahorrando memoria y tiempo. En una consulta simple apenas se nota, pero en
consultas con muchos joins o subconsultas ahorra mucho tiempo.

 Devolver los datos que se necesiten: Un aspecto que siempre se menciona en


todos los libros de SQL es que debemos devolver nada más que los datos que se
necesitan, y esto sobre todo referido a las columnas de datos. Debemos evitar el
uso de SELECT * ya que esto además de devolver más datos de los que
seguramente necesitemos, impide el uso de índices, añadiendo mayor
degradación al rendimiento del sistema.

Los anteriores fueron unos trucos básicos que esperamos ayuden a mejorar y optimizar
tus consultas.

También podría gustarte