Pregunta

¿Alguna vez ha tenido que justificar el no usar una sugerencia de consulta?

estoy viendo WITH (NOLOCK) en cada consulta que realiza un servidor muy ocupado. Es hasta el punto de que los desarrolladores creen que sólo debe ser activado de forma predeterminada porque odian ver que en sus códigos de miles de veces.

He intentado explicar que está permitiendo lecturas sucias y que va a terminar con los malos datos con el tiempo, pero creo que el equilibrio del rendimiento es bien vale la pena. (Su base de datos es un desastre;. No es de extrañar que tienen problemas de rendimiento)

Si usted tiene un claro ejemplo de cómo presentar el caso en contra de este abuso de la pista NOLOCK, que sería apreciada.

¿Fue útil?

Solución

Usted escoge sus batallas y batallas de este tipo no se pueden ganar fácilmente. Tenemos un sistema en el que cada DML se insinúa con la indirecta ROWLOCK (independientemente de la modificación de una fila o varios miles de filas). He mostrado varios ejemplos por eso me duele mucho el rendimiento, pero como el sistema ya está funcionando, hay resistencia al cambio. Tenga en cuenta que los convencí suficiente para no utilizar este en el futuro sin embargo.

NOLOCK tiene su lugar, pero me puede recomendar algunas referencias buenas mostrando los problemas de su uso:

Otros consejos

Se ha discutido en lo que antes de:

Definir muy ocupado. Tenemos volúmenes altos (50k nuevas filas por segundo, grandes agregados, etc.) y no ven la necesidad de obtener datos poco fiables también

Hay que explicar a sus colegas la importancia de comprender los niveles de aislamiento. Mostrarles ejemplos. La explicación más agradable y más fácil que encontré en el cartel de Little Kendra de los niveles de aislamiento . Pregúnteles por qué piensan que necesitan nolock pista. ¿Por qué no usan el "nivel de aislamiento de transacción conjunto ..." declaraciones? Preguntar cuál es exactamente la situación que quieren arreglar, tal vez tienen puntos muertos, blocking..etc. Si ellos no quieren que las cerraduras de retención que podrían considerar el nivel de aislamiento de instantánea.

Sólo pidiéndoles que puede tener una imagen clara.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top