Ads 468x60px

domingo, 27 de febrero de 2011

Entendiendo PostgresSQL - Tablespaces

Esto es lo que dice la ayuda sobre los Tablespaces: "Los Tablespaces permiten a los administradores de Bases de Datos definir las ubicaciones en el sistema de archivos de los objetos que representan las bases de datos que se pueden almacenar". Dicho de otra manera, los Tablespaces nos permiten decirle a PostgreSQL donde queremos almacenar nuestras tablas. ¿Y para que sirve ésto? Pues por ejemplo para optimizar el rendimiento; si sabemos que tablas son más usadas y las que apenas se usan, podríamos almacenar las menos usadas en un disco duro antiguo o de menos prestaciones y las que más se usan en un disco más rápido, de mejor calidad y por lo tanto más caro.
Para crear el Tablespace utilizamos el siguiente comando:

CREATE TABLESPACE MiEspacio LOCATION 'c:\postgresql\datos';
El directorio debe existir. Todos los objetos que se creen bajo este Tablespace serán almacenados en este directorio.

martes, 22 de febrero de 2011

¿Cuando ocupa mi Base de Datos?

Si queremos saber cuanto ocupa nuestra base de datos, nada más sencillo que ejecutar esta consulta:

SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE FROM pg_database;
 
Aquí podemos ver el resultado:
 


 
 
 
 
Fácil ¿no?

domingo, 13 de febrero de 2011

¿Donde guarda Postgresql mi base de datos?

Si investigamos un poco en el árbol de directorios donde está instalado Postgresql, podremos observar que donde guarda las bases de datos es en es C:\Program Files\PostgreSQL\8.4\data\base, pero comprobamos que nuestra base de datos no aparece, o eso parece:

Como podemos observar en la imágen, en la carpeta data aparecen varias carpetas con números como nombre. Si queremos saber que nombre de base de datos corresponden a esos números, es tan fácil como ejecutar esta consulta: select datname,oid from pg_database;
Voilá :
Como vemos en la segunda imágen la carpeta con el número 1 corresponde a template1, la número 11563 con template 0 y así sucesivamente.