Estoy escribiendo un código de registro/auditoría que se ejecutará en producción (no solo cuando se producen errores o durante el desarrollo). Después de leer Coding Horror's experiences with dead-locking and logging, decidí que debería buscar consejo. (La solución de Jeff de "no iniciar sesión" no funcionará para mí, esta es una auditoría de seguridad ordenada por ley)Consejos para minimizar el bloqueo en una tabla de solo agregar en MS SQL Server?
¿Hay un nivel de aislamiento adecuado para minimizar la contención y el bloqueo muerto? ¿Alguna sugerencia de consulta que pueda agregar a la declaración de inserción o al procedimiento almacenado?
Me preocupa profundamente la integridad transaccional de todo excepto la tabla de auditoría. La idea es que se registrará tanto que si fallan algunas entradas, no es un problema. Si el registro detiene alguna otra transacción, sería malo.
Puedo iniciar sesión en una base de datos o en un archivo, aunque el registro en un archivo es menos atractivo porque necesito poder mostrar los resultados de alguna manera. El registro en un archivo (casi) garantizaría que el registro no interferiría con otro código.
¿qué versión del servidor sql? –
SQL 2000, aunque hay rumores de que algún día la oficina saltará a SQL 2008. – MatthewMartin