Sabías que cuando se ejecuta una consulta a una base de datos
SQL Server se llevan a cabo varios pasos: primero se realiza un control
de sintaxis, si es correcta, se da paso a una estandarización
de la sentencia, luego se hace una optimización de la misma
y al final quedan la compilación y la ejecución.
En el proceso de optimización,
SQL Server busca lo que se denomina “Argumentos de búsqueda”,
que son las partes de las cuales se puede valer SQL Server para
decidir cuál es el método adecuado de resolución
de esa consulta, y se consideran pertenecientes a este grupo los
operadores: =, >, <, <=, >=, BETWEEN, LIKE e IN.
A la larga estos últimos
se transforman en operadores del tipo anteriormente mencionado;
es decir, una instrucción IN se descompone en algo como:
campo = valor_a OR campo = valor_b, etcétera, donde los operadores
lógicos AND y OR apoyan todo esto.
Además de lo anterior,
es recomendable para la optimización de código utilizar
la instrucción “JOIN” en las consultas donde
se involucren dos o más tablas, ya que el optimizador sale
en la búsqueda de los JOINs cuando realiza su tarea.
Es importante comentar
que no es recomendable utilizar la cláusula “WHERE”
para plantear la condición del JOIN, sino utilizar “ON”.
La diferencia radica en que cuando se utiliza “ON” para
hacer la concordancia de columnas se deja la cláusula WHERE
para especificar las condiciones que deberán cumplir las
filas una vez unidas las tablas.
Todo lo anterior, se
puede aún mejorar en cuanto a rendimiento si se encapsula
el código de las consultas dentro de procedimientos almacenados
(Stored Procedures), ya que los mismos permiten aprovechar toda
la potencia del servidor. Cada vez que se ejecute ese procedimiento
almacenado, el código ya estará controlado, estandarizado,
optimizado y compilado, con lo cual sólo quedará su
ejecución, permitiendo realizar las consultas de una forma
más rápida y eficiente.
Por último, se
recomienda evitar el uso de “cursores” para realizar
consultas, ya que si un cursor no esta bien programado o no se tiene
el control del mismo, este puede utilizar demasiada memoria del
servidor afectando el desempeño del equipo. Existen casos
que sólo se resuelven con cursores, como es el recorrer el
resultado de una consulta y realizar en cada paso operaciones complejas
o que no se pueden realizar mediante una consulta simple, sin embargo
recomendamos tener mucho cuidado si estos son utilizados.
Actualmente, la Universidad
Veracruzana (UV) utiliza SQL Server como manejador de base de datos
para varios sistemas institucionales, y existen servidores de producción
y desarrollo que son administrados por personal de la Dirección
de Desarrollo Informático de Apoyo Académico de la
Dirección General de Tecnología de Información.
|