Personal tools
You are here: Home Productos Sice Velocidad y optimización de Servidor, Clientes y Sice
Document Actions

Velocidad y optimización de Servidor, Clientes y Sice

by admin last modified 2005-11-29 13:48

Este documento describe opciones disponibles para acelerar el acceso a Sice, especialmentente en entornos de muchos usuarios.

Conceptos básicos

Access permite el acceso hasta 255 usuarios, pero no es adecuado en muchos casos para más de 20. El problema es la escritura no muy controlada al archivo .mdb que está compartido mediante SMB, el protocolo de compartición de redes Microsoft. Previa optimización del software, recomendamos revisar la instalación:

  • hardware red estable: switches y tarjetas de red. Revisar cables y aparatos. No poner más de 2 swiches en cadena, si posible.
  • comprobar tasa de respuesta y transferencia (usar por ejemplo, Qcheck)
  • sistemas operativos Windows NT, 2000, XP, etc. no muy cargados. El problema es que los sistemas tipo Windows 9X, Millenium, etc. no son muy estables y pueden provocar más corrupciones de base de datos.

Optimizaciones específicas para Access en un servidor de archivos compartidos:

En principio, sólo hemos probado con servidores Microsoft, aunque creemos que Linux con Samba también puede funcionar bien. Cuando el primer usuario entra al archivo de base de datos (SiceXPTbl.mdb), Access crea un archivo .LDB correspondiente. En él sólo se escribe el ordenador desde que se ha iniciado la conexión y el nombre de usuario (que en nuestro caso siempre es Admin). Cada entrada tiene 64 bytes, dando un máximo de 255*64 bytes. Se realiza un bloqueo sobre este archivo para:

  • indicar el usuario que ha entrado
  • las páginas y los registro sdel archivo del .mdb bloqueadas para escritura, lectura, etc.

Todos estos bloqueos se realizan en un rango por encima del tamaño del archivo, es decir, el sistema operativo permite, por ejemplo, bloquear el byte 0x1000001, aunque no exista en este archivo.

Cuando un usuario sale, Access intenta borrar el archivo .LDB. Se reintenta hasta 15 veces, resultando en tiempos de respuestas lentos. Si contínuamente la aplicación accede puntualmente a la base de datos sin mantener una referencia abierta (formulario abierto oculto o recordset) el tiempo de respuesta aumenta por los constantes intentos de querer borrar el archivo .LDB.

Técnicas de optimización para Access

  • El frontend y el backend tienen que tener **la misma configuración** de ordenación regional. Herramientas->Opciones->Pestaña General->Nuevo orden de la base de datos. El orden se aplica tras compactar la base de datos. Pensamos que el 'Español Moderno' será algo más rápido que el 'Español Tradicional'
  • Mantener siempre (al menos) un formulario oculto o un recordset abierto hacia el servidor.
  • Desactivar las hojas de datos secundarias (Access XP y subsiguientes) "Ver este código":http://sicem.biz/personal/erny/msaccess/TurnOffSubsheets
  • Desactivar la opción "Realizar seguimiento de autocorrección en los nombres" entre las opciones generales de Access.
  • En Sice, hay muchas consultas que no están optimizadas. Revisar puntualmente las consultas efectuadas desde código o formularios y optimizarlas.
  • Revisar esta lista

Optimizaciones en el servidor

  • Los "oportunistic locks" es un mecanismo de Microsoft para aumentar el rendimiento en la red. El sistema operativo cachea las modificaciones localmente (con permiso del servidor). Si se permite, puede que la base de datos se corrompa, especialmente si el tamaño es pequeño. Conviene apagar esta opción:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
        "EnableOplocks"=dword:00000000
    
  • Reduciendo el retardo al salir (borrado .LDB cuando está bloqueado):
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
        "SharingViolationDelay"=dword:00000000
        "SharingViolationRetries"=dword:00000000
    
  • El siguiente parámetro permite a los clientes seguir sin que el servidor haya guardado los resultados en disco duro (mensaje SMB_FLUSH):
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
        "TreatHostAsStableStorag=dword:00000000"
    

Algunos enlaces

  • Revisar "esta página":http://snakefoot.fateback.com/tweak/winnt/sharing.html donde viene explicado, entre otros, cómo apagar el firmado SMB (aumento 10-15%).
  • Consejos para Jet 4

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: