Espacio ocupado por bases

Gente:

Acabo de hacer un export de la base de producción para luego hacer un import. La intenté importar en el mismo dbspace que la de producción y no había espacio.

Es un dbspace de 500000 páginas, o sea 2 GB. Cuando hice el onstat -d vi que hay 251856 paginas libres, o sea que la base ocupa casi la mitad del dbspace.

Entonces la importé en otro dbspace del mismo tamaño (dbs_pruebas) y me llamó mucho la atención que luego de la importación el espacio libre en este dbspace es bastante menor que el de producción, o sea que es como que la base exportada y vuelta a importar ocupa bastante más espacio que la original (quedan libres 153763 páginas).

Alguien sabe y me puede explicar porque ese comportamiento? (todo sea para aprender algo más …)

Gracias

Gustavo

Gente:

Nunca nadie respondió esta duda. Ahora tengo otra situación que me llama la atención y no sé a que se debe ni como se arregla:

Tengo un dbspace para los datos en una PC de pruebas y tengo que generar una base nueva del Guaraní. El dbspace tiene 2GB (500000 páginas) y tenía libres algo así como 150000 pages. Como pensé que me iba aquedar corto, ya que tenía 2 bases en ese dbspace, procedí a eliminar una base y se liberó algo de espacio per4o no todo lo que hubiera supuesto. Entonces decidí eliminar la otra base de datos y para mi soprpesa en lugar de quedarme casi todo el dbspace libre, veo que tengo libre algo así como 175000 pages y no tengo idea que puede estar ocupando el resto del espacio, en teoría no hay nada para que lo ocupe.

Alguien sabe que puede estar pasando? Como puedo hacer para saber que es lo que ocupa el resto de las 300000 pages si en realidad no tengo ninguna base de datos? Como puedo hacer para liberar ese espacio?

Gracias, espero resouestas.

Saludos

Probaste con el Server Studio? http://www.serverstudio.com/downloads/

Tiene muchas funciones interesantes de administracion y probablemente te de la informacion que estas buscando.
Lo malo es que es una version de evaluacion de 30 dias y despues te queda un editor SQL pelado

Hola Gustavo,

Podrias ejecutar un “oncheck -pe” (-pe = print extents ) y estudiar a que objetos esta asignado el espacio dentro del dbspace. Si hay 300.000 paginas que deberian estar libres y no lo estan, el oncheck debe reportar en “QUE” las esta utilizando. Es un poco trabajoso, pero inclusive se puede hacer algun script para subir a una planilla de texto o tabla donde procesarlo mas facilmente

Esta misma tecnica la podes utilizar para encontrar la causa de la primer pregunta del post (porque una base importada ocupaba mas espacio que la original)

cualquier cosa y vemos juntos el oncheck -pe

saludos
Ignacio

Ignacio:

Finalmente terminé exportando todas las bases que tenía en el motor y dropeandolas, para quedar con el motor “pelado”.

Parece que había alguna base que estaba en el dbspace equivocado y que era la del problema. Ahora se me arregló todo. Es una PC de trabajo mia en casa.

Unos días después tuve otro problema: quisé entrar en la consola del motor para ver algunas cosas y no me dejaba entrar con ningún usuario (mi usuario habitual, dba, Informix) y lo raro es que hace 5 años que tengo esa maquina y siempre había podido entrar. Me daba como que el Informix no estaba arrancado, el famoso mensaje de la shared memory. Pero el motor estaba levantado, ya que podía ejecutar sentencias SQL. Paré y arranqué el servicio, y seguía todo igual.

Por las dudas, apagué la PC y la volví a encender y todo se solucionó magicamente volviendo a la normalidad. Cosa de Mandinga!! O cosas del Windows! jeje!!

Saludos

Gustavo

Volviendo al mensaje original, el problema del porque ocupaba mas espacio cuando importaste la base fue porque habia otra base de datos en ese dbspace, no?
Porque deberia ocupar lo mismo o menos, ya que al importar reordena las paginas de cada tablespace y eliminando aquellas que estan vacias.

Ale:

El mensaje original es bastante viejo y ya ni me acuerdo cual era la base, pero lo que claramente expreso allí fue que la importé en otro dbspace y aparentemente ocupó más espacio que la original. Lo que no puedo recordar es si era un dbspace nuevo, o era uno que ya existía y yo creía que estaba vacío y a lo mejor no lo estaba.

Yo suponía lo mismo que vos, por eso me llamó la atención el comportamiento. Ahora para ver que pasa debería hacer nuevamente las pruebas. En ese momento nadie respondió y yo use un hilo anterior para postear el mensaje nuevo de Octubre.

Saludos

Gustavo

Una posible explicación de porque luego de importar la base ocupa más que la original en producción puede ser porque al importar informix regenera toda la información de estadística e indices que, en la de producción debían estar desactualizadas. tendrías que hacer un update statistics en la de producción para actualizar esa información y así mejorar la performance del servidor.

en el repositorio de comunidad hay un script para armar el update statistics.

Saludos.

Carlos:

Puede ser esa la explicación, no lo verifiqué. De todas maneras, nunca corrí la actualización de las estadísticas porque es una PC que tengo en casa para hacer pruebas y no me importa la performance, sobre todo que la uso cada muerte de obispo.

En los servidores de producción de las instituciones actualizo periódicamente las estadísticas, ya que conozco sus beneficios. Incluso cada tanto hago un export, un drop y un import, para que se regenere todo de nuevo.

Saludos

Gustavo