SQL with(nolock) como y porqué

El tiempo de que tarda en ejecutar una cosulta y devolverla a nuestro programa a veces puede ser una tarea ardua, con tiempos de espera bastante elevados, dependiendo de los casos muchas veces nos encotramos que una consulta aparentemente sencilla se nos demora más de 5 sergundos. si tomamos este tiempo como referencia, en consultar un dato , la experiencia para el usuario es mala, por que el sistema es lento.

Para poder solventar parte del problema podemos utilizar la clausula with(nolock) dentro de nuestras consultas y o vistas de SQL, como lo hacemos?.

Pues muy sencillo , lo unico que debemos hacer es añadir la clausula al final de cada tabla como en el ejemplo:





 


Si tuvieramos varias tablas quedaría así:

 

¿Qué debemos tener en cuenta si utlizamos esto?

Lo que debemos saber es esta cláusula no bloquea la tabla ni los datos para ejecutar la consulta, esto a veces puede darnos problema en la integridad de la consulta si hay datos que se están sobreescribiendo continuamente.

¿Dónde lo situo?

Pues bien, si sabemos que no bloquea la tabla y que los datos pueden estar siendo escritos en ese momento, debemos situar el with(nolock) en las tablas maestras, y no en las relacionadas que puedan ser sobreescritas continuamente, ya que las tablas maestras es poco frecuente que se sobreescriban datos.

Para saber si esto nos resulta de ayuda os recomiendo utilizar el SQL PROFILER como guia para ver los tiempos de ejecución


2 comentarios en “SQL with(nolock) como y porqué”

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.