Las GTT (Global Temporary Table) son muy útiles porque nos permiten tener tablas temporarias, tablas que solamente existirán mientras dure la transacción o la conexión.

Pero cuando las tablas GTT son grandes y necesitan ser ordenadas fuera del sort buffer pueden ocurrir problemas. Si usamos un disco RAM para los archivos temporales (los creados cuando en un SELECT tenemos la cláusula ORDER BY y ningún índice disponible) podríamos obtener este mensaje de error:

Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during “CreateFile (create)” operation for file “”.
Error while trying to create file.
The system can not find the path specified.

¿Cuál es el problema?

Que la carpeta donde se guardan los archivos temporales se encuentra en un disco RAM.

¿La solución?

Indicarle al Firebird que no use un disco RAM para los archivos temporales.

¿Qué versiones de Firebird tienen este problema?

Se lo ha detectado en Firebird 2.5.4 de 64 bits usando Windows 8.1

Podría ocurrir también en otras versiones.

Artículos relacionados:

Creando y usando tablas temporales
Usando un disco RAM para aumentar la velocidad
Los archivos temporales del Firebird
Acelerando los SORT
Configurando al Firebird
El índice del blog Firebird21
El foro del blog Firebird21

Anuncios