numero maxlocksperfile excedio compartidos bloqueos archivos ms-access

ms access - maxlocksperfile - Acceso: no hay espacio suficiente en el error de disco temporal



maxlocksperfile access 2003 (1)

Estoy teniendo el siguiente error:

"No hay espacio suficiente en el disco temporal. (Error 3183)"
"Intentó realizar una operación que requiere más espacio de lo que está disponible en el disco temporal. La ubicación del disco temporal se basa en la variable de entorno TEMP DOS, que se configuró cuando se inició el sistema".

Estoy usando Access 2007 como interfaz. La base de datos está en SQL Server 2008. Esto sucede cuando estoy usando un formulario cuyo origen de registro es una consulta SQL y voy a un registro específico usando el control de navegación. La tabla tiene alrededor de medio millón de registros. Estoy en XP SP3 con 4GB de RAM y hay 1 GB gratis.


Lo más probable es que se encuentre con el límite de 2 GB en las tablas de MS Access. Posiblemente en una tabla temporal que se crea / usa durante la consulta.

Esto es probablemente causado por las uniones que tenga en su consulta, que tienden a multiplicar los datos. Y con un millón de filas, todo lo que tienes que hacer es multiplicarlo por 2K de datos por fila para alcanzar ese límite)

Puedes resolver esto de varias maneras.

  • Puede mover el limitador más grande en su cláusula where hasta el final (como recuerdo, el SQL se ejecuta de abajo hacia arriba).
  • Puedes simplificar la consulta
  • Puede dividir la consulta en subconsultas, cada una de las cuales tiene su propia cláusula where, y luego unirse en los resultados.

También podría forzar la ejecución de la consulta en el lado del Servidor SQL; que creo que ocurre de forma predeterminada, pero puede verse frustrado por una consulta ineficiente (por ejemplo, una función de llamada que devuelve varchar en la cláusula where)