El disco duro se llena al hacer un process update de SSAS
Cuando una persona creas sus cubos de SQL Server Analysis Services (SSAS) inicialmente procesar las dimensiones o hacer un process update toman pocos segundos.
Sin embargo, en bases de datos de varios GB por día hacer un process update puede tomar demasiado tiempo.
Lo que le pasó a un cliente es que tenía un proyecto de Integration Services donde corría un process update. Con el tiempo esos process update diarios tomaban cada vez más tiempo. Luego notaron que el process update se comió todo el disco.
Cuando corrian el proces update individualmente, si bien consumía bastante disco duro de manera temporal luego se liberaba esta memoria.
Decidió mi cliente correr las dimensiones en secuencia en vez de hacerlo en paralelo. De esta forma evitarían que se llene el disco duro. Sin embargo, al correr en secuencia en SQL Server Integration Services (SSIS), igual se llenaba el disco y al final para colmo no se liberaba el espacio y no terminaba. Los discos eran de varios Terabytes.
Luego trataron de correr los XMLAs en secuencia usando jobs de SQL Server y no tuvieron problemas. Me preguntaron ¿porqué SSIS se comía todo el disco duro ?
Ahi me preguntaron el problema.
Tenían una tarea de SSIS algo similar a esto:
Al ver las propiedades vi el problema:
Por defecto se crea todo el procesamiento de dimensiones en una transacción con la opción All in one transaction.
Es decir que toooodas las dimensiones corren un una sola transacción. Con esa opción se va llenando temporalmente el disco duro. El disco se va llenando. Si son muy grandes los cubos ni alcanze un disco de varios Terabytes.
Para cambiar hay que cambiar la opción por defecto de configuración con el botón Change Settings:
La colución es cambiar la opción de transaction mode de All in one Transaction to Separate Transaction y mantenerlo de manera secuancia.
De esta forma, se va liberando el disco duro una vez que una dimensión individual termina.
Comentarios
Publicar un comentario