Optimizar Navision en SQL Server

Estas son algunas pautas a tener en cuenta para optimizar la base de datos de Microsoft Dynamics Nav (Navision) en Microsoft SQL Server.

Dynmc-NAV_c

Dynamics NAV Default Isolation Level

Con el lanzamiento de Microsoft Dynamics NAV 5.00 SP1 (Build 30482 / KB 979135) y posteriores tenemos la opción de cambiar el nivel de aislamiento predeterminado de NAV de SERIALIZABLE a REPEATABLEREAD.

SERIALIZABLE: Este es el nivel de aislamiento más restrictivo. Cuando se utiliza, los valores fantasmas no pueden ocurrir pues impide que otros usuarios actualicen o inserten filas en el conjunto de datos hasta que la transacción se complete.

REPEATABLEREAD: Cuando se utiliza, las lecturas ‘sucias’ y no repetibles no pueden ocurrir. Esto significa que los bloqueos se colocarán en todos los datos que se utilizan en una consulta y otra transacción no puede actualizarlos. En resumen SERIALIZABLE es más restrictiva y bloquea más registros que REPEATABLEREAD que puede causar más tiempos de espera de bloqueos y desbloqueos. REPEATABLEREAD es menos restrictiva y permite una mayor concurrencia en general.

Configuración por defecto del nivel de aislamiento en NAV de SERIALIZABLE a REPEATABLEREAD

UPDATE [$ndo$dbproperty] SET diagnostics = 4194304

Para obtener el valor actual

Select diagnostics from [$ndo$dbproperty]

Microsoft Dynamics NAV "Lock Timeout"

Este ajuste significa básicamente que si un usuario intenta acceder a un recurso y está bloqueado por otro usuario espere los segundos que usted ha especificado y vuelva a intentarlo antes de emitir un mensaje de error. Le recomendamos que esta opción no se utilice en absoluto o que se establezca entre unos 10 a 20 segundos, un valor muy alto para el bloqueo estático de tiempo de espera puede causar problemas. Por lo general, cuando un cliente tiene un gran valor que para esto es porque hay un problema de rendimiento subyacente. Esto realmente depende de cada configuración y puede ser mayor si hay circunstancias específicas.

Para cambiar el valor por defecto en Microsoft Dynamics NAV, click File, click Database, y luego click Alter para abrir la ventana de Alter Database. Click en la pestaña Advanced y marque o desmarque la casilla de Lock timeout field.

Microsoft Dynamics NAV "Always Rowlock"

El Microsoft Dynamics NAV siempre bloquea las filas por una compatibilidad con sistemas de 32 bits y sobre SQL Server 2000. En el 99% de los casos en SQL Server 2005 y posteriores esto se puede desactivar liberando la memoria de bloqueo que SQL puede utilizar para otros fines sin ninguna pérdida de rendimiento.

NOTA: En algunas pruebas de rendimiento sin tener esta opción habilitada la concurrencia y el rendimiento aumentaron.

Comentarios