Generacion de cubos DW

Buenas
Estamos teniendo problemas al generar la información de DW, precisamente en la operacion de generacion de temporales y la de Rend. Academico v2., luego de un tiempo aborta con un mensaje de error
Esto nos sucede con algunas bases , no con todas.

El servidor cuenta con dbspaces temporales de sobre, de hecho los monitoreo al momento de ejectuar esa operacion y no consumen casi nada de espacio del dbspace tempora. Esta definido correctamente en el onconfig.
Tambien se intento la generación quitando el logging de la base, con los mismos resultados.

Alguna cuestion a tener en cuenta?

Gracias

¿Cual es el mensaje de error? El motor informa de algun error en el archivo de log ?

Si no consume nada en el dbspace temporal, entonces consume espacio del rootdbs? Porque al menos los tres procesos mas pesados spdw_02v2_cursado, spdw_02v2_examen y spdw_02v2_equiv crean tablas temporales con la opcion with no log, lo que deberia alojar esas tablas en el dbspace temporal.

¿Corriste el update statistics (en lo posible la opcion high) sobre las tablas de la base antes de correr el proceso?

¿Verificaste si no hay algun problema en algun indice? Corre el comando: oncheck -ciI nombre_base

Hola Ale,
Hicimos todo eso y mejoramos. Ahora el error que tenemos es el siguiente:

Error de base de datos -284 a subquery has returned not exactly one row

Bueno, vamos mejorando… :slight_smile:

Mira, deberias detectar que procesos se ejecutan, decime en que operacion y te dire que datawindows son las que ejecutan que todas o la mayoría tienen como fuente un stored procedure.
Una vez identificados los stored procedures hay que buscar alguno que tenga algun SELECT … INTO … es decir que espere retornar una fila pero por lo que se ve retorna mas de una y ahi es donde te da el error.

De esos sp que detectes que tengan una sentencia como esa habria que poner un debug y ver cual es la que falla.

Hola Ale,
Lo que estoy viendo con esta base en particular al correr la generacion de datos temporales

Last parsed SQL statement :
execute procedure sp_int_dw_i_alu ( )

User-created Temp tables :
partnum tabname rowsize
200849 creditostemp 5

Adjunto imagen de tablas creadas


bases temp.JPG

bases temp.JPG_thumb.png

No encuentro donde se crea esa tabla “creditostemp”. Uds tienen personalizado alguno de estos procesos que se usan en la interfaz con Araucano?

¿El error -284 lo da este proceso ( sp_int_dw_i_alu) ?

Hola Ale, si esa es una tabla nuestra.
El error -284 lo solucionamos, teníamos un registro duplicado.
el error que tenemos ahora es “-264 Could not write to temporary file” y lo da el sp_int_dw_i_alu

Ahi lo arreglamos, sea grego la sentencia WITH NO LOG en la creacion de esas tablas temporales personalizadas

Siguio fallando, ahora veo que hay otras tablas que no se crean en el dbspace temporal, por ej tmp_dw
Revisando el SP, vemos que estan creadas con CREATE TEMP, pero faltarìa el WITH NO LOG

Si, pero cuales son los procedures? Porque el que mencionaste antes tiene el with no log donde crea la tabla temporal.

Ale,. esto es lo ultimo parseado:

Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers
4744 - fbiogrado CR Wait 3 0 0 9.03

Last parsed SQL statement :
SELECT dba.mme_mensajes.tipo, dba.mme_mensajes.mensaje,
dba.mme_mensajes.mascara_original, dba.mme_mensajes.mascara,
dba.mme_mensajes.clasificacion, dba.mme_tipos_mensaje.descripcion,
dba.mme_mensajes.boton FROM dba.mme_mensajes,
dba.mme_tipos_mensaje WHERE dba.mme_tipos_mensaje.tipo =
dba.mme_mensajes.tipo AND dba.mme_mensajes.tipo = 1 AND
dba.mme_mensajes.mensaje = -264

User-created Temp tables :
partnum tabname rowsize
5001e0 creditostemp 5

Revisando las tablas temporales que crea, aparentemente ahora las está creando bien en el dbspace temporal, monitoreo el dbspace temporal y el consumo es mínimo, tengo 4GB de dbtemp
El SP siempre es sp_int_dw_i_alu que va llamando a otros.

Que otra cosa podemos revisar?

Mira, esa tabla temporal no puedo encontrarla ni en procedures ni triggers de la version 2.8.0.

Fijate de poner un trace al procedure sp_int_dw_i_alu y bueno ver si en la info que registra aparece ese error de la tabla temporal creditostemp y ver que otro proceso lo crea y ademas encontrar donde esta el error -264

Claudio que pasó con este tema? Pudiste debuguear ese procedure?