17 oct

RENDIMIENTO SQL CON MICROSOFT DYNAMICS NAV: OPTIMIZACIÓN

Cuando implantamos Microsoft Dynamics Nav bajo plataforma SQL, además de las buenas prácticas de programación en C/AL, una de las tareas más importantes para que el buen rendimiento del ERP es la correcta configuración, monitorización y seguimiento del SQL Server. Con objeto de aumentar el rendimiento de la aplicación y minimizar los famosos bloqueos de Dynamics Nav, vamos a indicar una serie de configuraciones y tareas recomendables a nivel de Microsoft SQL Server y Microsoft Dynamics Nav:

•“Max Server Memory”. Limitación de la memoria RAM a utilizar por el SQL SERVER.

Podremos utilizar esta sentencia para fijar el límite de memoria a utilizar por el SQL:

sp_configure ‘max server memory’, 27500

RECONFIGURE

GO

•“Auto – Create Statitics”. Debemos de activar “Actualizar Estadísticas automáticamente” ya que esto aumentará considerablemente el rendimiento de SQL Server.

•“Auto – Grow”. Hay que tener especial cuidado con el Auto-Crecimiento de la base de datos. Si el crecido automático se produce en producción, disminuirá notablemente el rendimiento de la aplicación, quedando prácticamente inutilizable mientras termina el proceso de auto-crecimiento. Se recomienda realizar revisiones periódicas de los ficheros de base de datos y realizar tareas manuales para aumentar el tamaño de dichos ficheros. De todas formas No es recomendable desactivarlo, ya que es preferible que se autoincremente a que la base de datos se quede sin espacio.

•“TempDb”. Se recomienda dividir el número de archivos de la tempdb en función de los CPU´s del servidor con un máximo de 8. Además los archivos de la tempdb deben de estar en una unidad separada de los archivos de base de datos. Cada archivo TempDB no tiene que estar en su propia unidad sólo necesitan estar separados de los datos SQL y archivos de registro.

•“Read Committed Snapshot Isolation (RCSI)”. A partir de SQL Server 2005 se introdujo un nuevo nivel de aislamiento llamado Read Committed Snapshot. Este nivel permite una mayor concurrencia y menos bloqueo, ya que se basa en un sistema de versiones de los registros bloqueados para que los distintos procesos no se bloqueen.

Para activarlo podemos utilizar la siguiente sentencia:

ALTER DATABASE DatabaseName

SET READ_COMMITTED_SNAPSHOT ON

GO

•“Microsoft Dynamics NAV Default Isolation Level”. A partir de la versión Nav 5 SP1 se nos permite cambiar el nivel de aislamiento de SQL de SERIALIZABLE a REPETEABLEREAD que es menos restrictiva y permite más concurrencia en general. Este cambio es muy importante para el rendimiento de la aplicación y por ello dedicaremos un capítulo posteriormente a este punto.

•Tareas Mantenimiento de SQL.

-Actualización de estadísticas. Se recomienda crear trabajos de mantenimiento de SQL, programados fuera del horario de trabajo, para Actualizar las estadísticas de la base de datos para mejorar el rendimiento de la aplicación. Para ello podemos utilizar “sp_updatestats”.

-Desfragmentación de índices. Al igual que el anterior caso, se recomienda realizar un trabajo de mantenimiento que se ejecute diaria o semanalmente fuera del horario de trabajo para actualizar los índices.

Todas estas prácticas anteriormente indicadas nos ayudarán a aumentar el rendimiento de Microsoft Dynamics Nav bajo SQL Server. En posteriores artículos entraremos más en profundidad de alguna de estas configuraciones y os mostraremos herramientas para revisar/analizar el rendimiento y realizar un correcto mantenimiento de nuestra base de datos.

Compártelo

Comentarios (2)

Jesus
8 noviembre, 2017 Reply

¿Cómo afecta y cómo debería configurarse correctamente el Transaction Log de SQL Server para optimizar el rendimiento?

    editor
    30 noviembre, 2017 Reply

    Hola Jesús, el Transaction Log de SQL afecta directamente a Nav, ya que todas las transacciones pasan por el Log. Para optimizar el rendimiento te recomendamos el modelo de recuperación simple y el fichero de Log alojado en Disco SSD independiente. Puedes encontrar más información en los docs de ayuda de Microsoft. https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide
    https://community.dynamics.com/nav/b/fenwicksoftware/archive/2017/11/14/how-the-sql-server-transaction-log-works-for-you
    https://docs.microsoft.com/en-us/sql/relational-databases/logs/manage-the-size-of-the-transaction-log-file

Deja un comentario


dos + = 3