Preguntas
From PostgreSQL Wiki
Contents |
Página Oficial de Preguntas Frecuentes
Esta es la traduccion de la página oficial de Preguntas Frecuentes(FAQ's) que se encuentra en migrada al wiki. Para todas aquellas preguntas que no se encuentran listadas en esta página se puede consultar: Preguntas Frecuentes en el Sitio Oficial.
General
- Preguntas Generales
- Preguntas Usuario Cliente
- Preguntas Administrativas
- Preguntas Frecuentes de Desarrolladores
Plataforma
- FAQ AIX
- FAQ Cygwin/ Windows
- FAQ HPUX
- FAQ IRIX
- FAQ MinGW/Windows
- Instalando y Ejecutando PostgreSQL en Windows de manera nativa
- FAQ SCO
- FAQ Solaris
Varios
Preguntas Generales
Preguntas Frecuentes (FAQ) de PostgreSQL
Ultima actualizacion: Tue Sep 23 16:19:49 EDT 2008
Mantenedor actual: Bruce Momjian (bruce@momjian.us)
La mas reciente version de este documento puede ser vista en http://www.postgresql.org/files/documentation/faqs/FAQ.html.
Preguntas de Plataformas especificas son respondidas en http://www.postgresql.org/docs/faq/. _________________________________________________________________
Preguntas Generales
1.1) ¿Que es PostgreSQL, Como se pronuncia, ¿Que es PostgreSQL?
1.2) ¿Quien Controla PostgreSQL?
1.3) ¿Que es el copyright de PostgreSQL?
1.4) ¿Que plataformas soporta PostgreSQL?
1.5) ¿Donde puedo obtener PostgreSQL?
1.6) ¿Cuál es el más reciente release?
1.7) ¿Donde puedo obtener soporte?
1.8) ¿Comó puedo enviar un reporte de error?
1.9) ¿Como puedo encontrar información acerca de errores conocidos
o de características desaparecidas?
1.10) ¿Que documentacion esta disponible?
1.11) ¿Como puedo aprender SQL?
1.12) ¿Cómo puedo enviar un parche o unirme ha el equipo de
desarrollo?
1.13) ¿Cómo comparar a PostgreSQL con otros DBMs? PostgreSQL puede
ser embebido?
1.14) ¿Puede postgreSQL manejar los recientes cambios de horario
daylight en varios paises y guardarlos?
1.15) ¿Qué debo hacer para darme de baja de las listas de correo de
PostgreSQL?,¿Qué debo hacer para evitar la duplicación en
la recepción de mensajes de correo?
Preguntas Usuario Cliente
2.1) ¿Que interfaces estan disponibles para PostgreSQL?
2.2) ¿Que herramientas estan disponibles para usar PostgreSQL
con paginas Web?
2.3) ¿PostgreSQL tiene una interfaz grafica de usuario?
Preguntas Administrativas
3.1) ¿Cómo puedo instalar PostgreSQL en un lugar diferente a
/usr/local/pgsql?
3.2) ¿Cómo puedo controlar las conexiones desde otros hosts?
3.3) ¿Cómo puedo ajustar el motor de base de datos para un mejor
rendimiento?
3.4) ¿Qué características de depuración están disponibles?
3.5) ¿Por qué obtengo "Lo siento, demasiados clientes" cuando
intento conectarme?
3.6) ¿Cuál es el proceso de actualización de PostgreSQL?
3.7) ¿Que hardware de computador debo utilizar?
Preguntas Operativas
4.1) ¿Cómo puedo selecionar sólo las primeras filas de una consulta?
Y al azar en una fila?
4.2) ¿Cómo puedo saber qué tablas, índices, bases de datos,
y usuarios estan definidos?
¿Cómo puedo ver las consultas utilizadas por psql para
mostrarlos?
4.3) ¿Cómo cambiar el tipo de datos de una columna?
4.4) ¿Cuál es el tamaño máximo de una fila, una tabla,
y una base de datos?
4.5) ¿Cuánto espacio de disco es necesario en una base de datos
para almacenar los datos desde un archivo de texto típico?
4.6) ¿Por qué mis consultas son lentas? ¿Por qué no usan mis índices?
4.7) ¿Qué debo hacer para ver cómo el optimizador de consultas
está evaluando mis consultas?
4.8) How do I perform regular expression searches and case-insensitive
regular expression searches? How do I use an index for
case-insensitive searches?
4.9) En una consulta, ¿cómo puedo detectar si un campo es NULL?
¿Como puedo concatenar valores NULL? ¿Cómo puedo ordenar sobre
si un campo que es NULL o no?
4.10) ¿Cual es la diferencia entre los varios tipos de caracteres?
4.11.1) ¿Cómo puedo crear un campo serial/auto-creciente?
4.11.2) ¿Cómo puedo obtener el valor de insertar un SERIAL?
4.11.3) Currval() No puede conducir en una condición de carrera
con otros usuarios?
4.11.4) ¿Por qué no son mis números de secuencia reutilizados
en una transacción abortada?
¿Por qué existen lagunas en la numeración de mi columna
secuencia/SERIAL ?
4.12) ¿Que es un OID? Que es un CTID?
4.13) ¿Por qué obtengo el error "ERROR: Memoria agotada en
AllocSetAlloc()"?
4.14) ¿Cómo puedo saber qué versión de PostgreSQL estoy corriendo?
4.15) ¿Cómo puedo crear una columna que se tome por defecto la hora actual?
4.16) ¿Cómo puedo realizar un outer join?
4.17) ¿Qué debo hacer para realizar consultas utilizando múltiples bases de datos?
4.18) ¿Cómo puedo regresar multiples filas o columnas desde una función?
4.19) ¿Por qué obtengo "relación con OID ##### no existe" errores
cuando se accede a tablas temporales en funciones PL/PgSQL?
4.20) ¿Qué soluciones de replicación están disponibles?
4.21) ¿Por qué mis tablas y nombres de columna no son reconocidos en mi consulta?
¿Por qué no es conservada la capitalización?
_________________________________________________________________
Preguntas Generales
1.1) Que es PostgreSQL? Cual es su pronunciacion? Que es Postgres? PostgreSQL es pronunciado Post-Gres-Q-L. (Para aquellos curiosos acerca de como se dice "PostgreSQL", un archivo de audio esta disponible.) PostgreSQL es un sistema de bases de datos objeto-relacional las características de los sistemas de bases de datos comerciales que se encuentran con mejoras en la próxima generación de sistemas de DBMS. PostgreSQL es libre y su codigo fuente completo esta disponible.
El desarrollo de PostgreSQL es realizado por un equipo en su mayoría de desarrolladores voluntarios extendido por todo el mundo y comunicacandose via Internet.Se trata de un proyecto de la comunidad y no está controlado por ningúna compañía. Para participar,vea las FAQ de los desarrolladores en http://www.postgresql.org/docs/faqs.FAQ_DEV.html.
Postgres es ampliamente utilizado como un alias para PostgreSQL. Era el nombre original del proyecto en Berkeley y es fuertemente preferido sobre otros alias.Si encuentra "PostgreSQL" difícil de pronunciar,llamalo "Postgres" en su lugar.
1.2) Quien controla PostgreSQL?
Si usted está buscando un gatekeeper PostgreSQL, un comité central, o una compañia de control, renuncie--- no hay una. Tenemos un núcleo committee y CVS committers, pero estos grupos son más de propositos administrativos que de control. El proyecto está dirigido por la comunidad de desarrolladores y usuarios, en la que cualquiera puede participar. Todo lo que necesitas hacer es suscribirte a las listas de correo y participar en los debates.(Véase el Developer's FAQ para más información sobre cómo involucrarse en el desarrollo de PostgreSQL.)
1.3) Que es el copyright de PostgreSQL?
PostgreSQL es distribuido bajo la clasica licencia BSD. Basicamente, esto permite a los usuarios hacer lo que quieran con el código, incluyendo la reventa de los binarios sin el código fuente. La única restricción es que no somos legalmente responsables de los problemas que usted tenga con el software.También existe el requisito de que este copyright aparezca en todas las copias del software. Aquí está la licencia BSD que usamos:
PostgreSQL Data Base Management System
Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
1.4) Que plataformas soporta PostgreSQL?
En general,cualquier plataforma moderna tipo Unix debe ser capaz de ejecutar PostgreSQL.Las plataformas que habían recibido pruebas explícitas a la hora de la liberación se enumeran en las instrucciones de instalación.
PostgreSQL también corre de forma nativa en sistemas operativos basados en Microsoft Windows NT como Win2000 SP4, WinXP, y Win2003. Un instalador precompilado está disponible en http://www.postgresql.org/download/windows. Las versiones de Windows basadas en MSDOS (Win95, Win98, WinME) pueden correr PostgreSQL usando Cygwin.
También hay un port para Novell Netware 6 en: http://developer.novell.com/wiki/index.php/Postgresql, and an OS/2 (eComStation) version at http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre SQL&stype=all&sort=type&dir=%2F.
1.5) ¿Donde puedo obtener PostgreSQL?
Via navegador web, use http://www.postgresql.org/ftp/, y via ftp, use ftp://ftp.postgresql.org/pub/.
1.6) ¿Cuál es el más reciente release?
El último release de PostgreSQL es la version 8.3.3. Tenemos planeado tener una versión cada año, con emisiones menores cada pocos meses.
1.7) ¿Donde puedo obtener soporte?
La comunidad PostgreSQL provee asistencia ha muchos de sus usuarios via email. El principal sitio web para suscribirse a las listas es: http://www.postgresql.org/community/lists/. La lista general o bugs es un buen lugar para comenzar.
El mayor canal IRC es #postgresql en Freenode (irc.freenode.net). Para conectarse usted puede usar el programa Unix irc -c '#postgresql' "$USER" irc.freenode.net o usando otros clientes IRC. Y un canal en español también existe en la misma red, (#postgresql-es), y uno en frances,(#postgresqlfr), y uno en Portugues, (#postgresql-br). También hay un canal de PostgreSQL en EFnet.
Una lista de compañias de soporte comercial esta disponible en: http://www.postgresql.org/support/professional_support.
1.8) ¿Cómo puedo enviar un informe de error?
Visite el formulario de errores de Postgresql en: http://www.postgresql.org/support/submitbug.También verifique nuestro sitio: ftp; ftp://ftp.postgresql.org/pub/ para ver si hay una versión más reciente de PostgreSQL.
La presentacion de errores utilizando el formulario de errores o postandolo
en cualquier lista de correo de PostgreSQL, tipicamente genera
una de las siguientes respuestas:
* No es un error, y por qué
* Se trata de un error conocido y ya está en la lista de cosas por hacer (TODO list).
* El error ha sido corregido en la versión actual
* El error ha sido reparado, pero no es todavía empaquetado en una liberacion oficial
* Una petición se hace para obtener información más detallada:
+ Sistema operativo
+ Versión de PostgreSQL
+ Caso de test reproducible
+ Información de depuración
+ Salida del depurador Backtrace
* El error es nuevo.Lo siguiente puede ocurrir:
+ Un parche es creado y se incluirá en la próxima mayor o menor liberación.
+ El error no puede ser corregido de inmediato y se añade a TODO list.
1.9) ¿Cómo puedo encontrar información acerca de errores conocidos
o de características desaparecidas?
PostgreSQL soporta un subconjunto extendido de SQL:2003. Vea nuestra TODO list para errores conocidos, características desaparecidas, y planes para el futuro.
Una solicitud de caracteristica suele resultar en una de las siguientes respuestas:
* La característica ya está en TODO list
* La característica no es la deseada debido a que:
+ Se duplica la funcionalidad existente ya que sigue el estándar SQL.
+ La característica aumentaría la complejidad del código, pero añadiria poco
beneficio.
+ La característica sería poco fiable o insegura
* La nueva característica se añade a TODO list
PostgreSQL no utiliza un sistema de seguimiento de errores, porque
consideramos que es más eficiente responder directamente por la dirección
de correo electrónico y mantener Todo list actualizado. En la práctica,
los errores no duran mucho tiempo en el software,y los errores que afectan
a un gran número de usuarios se corrigen rápidamente. El único lugar para
encontrar todos los cambios, mejoras, y correciones en PostgreSQL es la
liberación para leer los mensajes de registro del CVS. Incluso la liberación
no toma nota de la lista de cada cambio realizado al software.
1.10) ¿Que documentación está disponible?
PostgreSQL incluye extensa documentación, incluyendo un enorme manual, paginas man, y algunos test de ejemplos. Vea el directorio /doc.También puede navegar por los manuales en línea en http://www.postgresql.org/docs.
Hay dos libros de PostgreSQL disponibles en línea en http://www.postgresql.org/docs/books/awbook.html y http://www.commandprompt.com/ppbook/. Hay un numero de libros de PostgreSQL disponibles para su compra. Uno de los más populares es por Korry Douglas.Una lista de reseñas de libros se puede encontrar en http://www.postgresql.org/docs/books/. También hay una colección de artículos técnicos de PostgreSQL en http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides %2C_and_Documentation.
El programa cliente de línea de comandos psql tiene algunos comandos(\d) para mostrar información acerca de tipos,operadores,funciones,agregados,etc. Use \? para mostrar los comandos disponibles.
Nuestro sitio web contiene aún más documentación.
1.11) ¿Como puedo aprender SQL?
Primero, considerar los libros especificos de PostgreSQL mencionados anteriormente. Muchos de nuestros usuarios tambien gustan de The Practical SQL Handbook, Bowman, Judith S., editado por.,Addison-Wesley.Otros,gustan de The Complete Reference SQL, Groff editado por., McGraw-Hill.
También hay muchos tutoriales agradables disponibles en línea: * http://www.intermedia.net/support/sql/sqltut.shtm * http://sqlcourse.com * http://www.w3schools.com/sql/default.asp * http://mysite.verizon.net/Graeme_Birchall/id1.html * http://sqlzoo.net
1.12) ¿Cómo puedo enviar un parche o unirme al equipo de desarrollo?
Vea las FAQ para desarrolladores.
1.13) ¿Cómo comparar a PostgreSQL con otros DBMs?, ¿PostgreSQL puede
ser embebido?
Hay varias maneras de medir el software: características, desempeño, fiabilidad, soporte,y precio.
Características
PostgreSQL tiene la mayoría de las características presentes en grandes DBMS,
como transacciones, subselects, disparadores, vistas, claves foráneas integridad referencial,y un sofisticado bloqueo. Tenemos algunas características que ellos no tienen, como tipos definidos por el usuario, herencia, normas, y control de concurrencia multi-version para reducir la contención de bloqueo.
Rendimiento
El rendimiento de PostgreSQL es comparable con otras bases de datos
comerciales y de codigo abierto. Es más rápida para algunas cosas,
lenta para otras.Nuestro rendimiento es usualmente +/-10% comparado
con otras bases de datos.
Fiabilidad
Nos damos cuenta que un DBMS debe ser fiable, o es inútil.
Nosotros nos esforzarmos por liberar un realease bien probado,
el código estable que tenga un mínimo de errores.
Cada release tiene al menos un mes de pruebas beta,y nuestra historia de liberaciónes demuestra que podemos ofrecer un release estable,sólido que está listo para su uso en producción. Creemos que nos comparamos favorablemente con otros software de bases de datos en está aréa.
Soporte
Nuestras listas de correo proporcionan contacto con un grupo numeroso de
desarrolladores y usuarios para ayudar a resolver los problemas encontrados. Si bien no podemos garantizar una corrección, los DBMS comerciales no siempre suministran una correción cualquiera. Acceso directo a los desarrolladores, la comunidad de usuarios,manuales, y el código fuente suelen a menudo dar ha PostgreSQL un apoyo superior que otros DBMS. Hay soporte comercial disponible por incidentes para aquellos que lo necesiten. (Ver FAQ en la sección 1.7).
Precio
Somos libres para todos los usos, tanto comerciales como no comerciales.
Puede añadir nuestro código a su producto sin limitaciones, excepto las señaladas en nuestra licencia estilo BSD como se ha indicado anteriormente.
PostgreSQL está diseñado como una arquitectura cliente/servidor, lo que requiere procesos separados para cada cliente y el servidor, y varios procesos auxiliares. Muchas arquitecturas embebidas pueden apoyar este tipo de requisitos. Sin embargo, si su arquitectura embebida requiere el servidor de base de datos para ejecutar dentro del proceso de solicitud, no se puede utilizar Postgres y seleccionar una solución ligera de base de datos.
1.14) ¿Puede postgresql manejar los recientes cambios de horario
daylight en varios paises y guardarlos?
Los cambios del horario de verano de USA se incluyen en la liberación
de PostgreSQL 8.0. [4+], y, despues en todas las grandes emisiones,
por ejemplo, 8.1. Los cambios en Canadá y Australia Occidental que
se incluyeron en 8.0.[10+],8.1.[6+],y,despues en todos
los lanzamientos principales. La versiones anteriores a PostgreSQL 8.0
utilizan la base de datos de la zona horaria del sistema operativo,
para guardar la información de horario de verano.
1.15) ¿Qué debo hacer para darme de baja de las listas de correo de
PostgreSQL?
La página de Majordomo de PostgreSQL permite la suscripción o cancelación
de la suscripción de cualquiera de las listas de correo electrónico
PostgreSQL.(Es posible que tenga que tener su contraseña de Majordomo
enviada a su correo electrónico para acceder y registrarse)Todas las
listas de correo electrónico de PostgreSQL están configuradas para que
el grupo dé respuesta y replique a la lista de correo electrónico y al
autor original del correo electrónico.
Esto se hace para que los usuarios reciban el mensaje de correo electrónico
lo más rápido posible y den sus respuestas. Si usted prefiere no recibir
un duplicado del correo electrónico de la lista, en caso de que usted ya
haya recibido un mensaje de correo electrónico directamente,
compruebe eliminatecc de la pagina de configuraciones de Majordomo.
También usted mismo puede prevenir recibir copias de los mensajes de
correo electrónico por usted posteados en la lista,desmarcando selfcopy.
_________________________________________________________________
Preguntas Usuario Cliente
2.1) ¿Que interfaces estan disponibles para PostgreSQL?
La instalación de PostgreSQL incluye sólo C y la interfaces embebidas de C. Todas las demás interfaces son proyectos independientes que se descargan separadamente, siendo independientes les permite tener su propia calendario de liberaciónes y equipos de desarrollo.
Algunos lenguajes de programación como PHP incluyen una interfaz para PostgreSQL. Interfaces de lenguajes como Perl, TCL, Python, y muchos otros están disponibles en http://pgfoundry.org.
2.2) ¿Que herramientas estan disponibles para usar PostgreSQL
con paginas Web?
Una buena introducción a la base de datos-backed por las páginas Web se puede ver en: http://www.webreview.com
Para integracion Web, PHP (http://www.php.net) es una excelente interface.
Para casos complejos, muchos usan Perl y DBD::Pg with CGI.pm y/o mod_perl.
2.3) ¿PostgreSQL tiene una interfaz gráfica de usuario?
Hay un gran número de Herramientas GUI que están disponibles para PostgreSQL tanto comerciales como desde desarrollos de código abierto. Una lista detallada se puede encontrar en la guia de herramientas GUI de la comunidad postgreSQL.
_________________________________________________________________
Preguntas Administrativas
3.1) ¿Cómo puedo instalar PostgreSQL en un lugar diferente a
/usr/local/pgsql?
Especifique la opción --prefix cuando se ejecuta configure. 3.2) ¿Cómo puedo controlar las conexiones desde otros hosts?
Por defecto, PostgreSQL sólo permite conexiones desde la máquina local usando sockets de dominio Unix o conexiones TCP/IP. Otras máquinas no podrá conectarse a menos que usted modifique listen_addresses en el archivo postgresql.conf,activar la autenticación basada en el host para modificar el archivo $ PGDATA/pg_hba.conf, y reiniciar el servidor de base de datos.
3.3) ¿Cómo puedo ajustar el motor de base de datos para un mejor
rendimiento?
Hay tres áreas principales para una potencial mejora del rendimiento:
Cambios de consultas
Esto implica modificar las consultas para obtener un mejor rendimiento:
+ Creación de indices, incluidos los de expresiones y de indices parciales
+ Uso de COPY en lugar de múltiples INSERTs
+ Agrupación de múltiples declaraciones dentro de una sola transacción
para reducir commit overhead + Uso de CLUSTER cuando se hace la recuperación de muchas filas de un índice + Uso de LIMIT para el retorno de un subconjunto de consultas de salida + Uso de Prepared queries (Consultas preparadas?)
+ Uso de ANALYZE para mantener la precisión en las estadísticas del optimizador
+ Uso regular de VACUUM o pg_autovacuum
+ Borrado de índices durante cambios grandes de datos
Configuración del Servidor
Una serie de ajustes en postgresql.conf afectara su rendimiento. Para
más detalles, véase la Guía de administración / Ambiente del Servidor en tiempo de ejecución/configuración en tiempo de ejecución para un lista completa,véase los comentarios.
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co nf_e.html and http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
Seleccion de Hardware
El efecto de hardware en el rendimiento se detalla en:
http://www.powerpostgresql.com/PerfList/ and
http://momjian.us/main/writings/pgsql/hw_performance/index.html
3.4) ¿Qué características de depuración están disponibles?
Hay muchas variables log_ * de configuración del servidor en http://www.postgresql.org/docs/current/interactive/runtime-config-logg ing.html que permiten la impresión de las consultas y el tratamiento de las estadísticas que puede ser muy útil para la depuración y la medición del desempeño.
3.5) ¿Por qué obtengo "Lo siento, demasiados clientes" cuando
intento conectarme?
Ha alcanzado el límite predeterminado de 100 sesiones de base de datos. Usted necesita aumentar el límite del servidor sobre el número de procesos concurrentes backend, puede empezar por cambiar el valor en max_connections en postgresql.conf y reiniciar el servidor. 3.6) ¿Cuál es el proceso de actualización de PostgreSQL?
Véase http://www.postgresql.org/support/versioning para un debate general acerca de la actualización, y http://www.postgresql.org/docs/current/static/install-upgrading.html para instrucciones específicas.
3.7) ¿Que hardware de computador debo utilizar?
Debido a que la mayoría de hardware es compatible con PC, la gente tiende
a creer que todo el hardware de PC es de igual calidad.
No lo es. RAM ECC , SCSI, y la calidad de las placas base son más fiables
y tienen un mejor rendimiento y es hardware menos costoso.PostgreSQL se
puede ejecutar en casi cualquier hardware, pero si la fiabilidad y el
rendimiento son importantes, es prudente la investigación de su opciones
de hardware a fondo. Nuestras listas de correo electrónico pueden ser
utilizadas para discutir opciones de hardware y de conpensaciones.
_________________________________________________________________
Cuestiones Operativas
4.1) ¿Cómo puedo seleccionar sólo las primeras filas de una consulta?
¿y al azar en una fila?
Para recuperar sólo unas pocas filas, si conoce el número de líneas necesarias en el momento de SELECT usar LIMIT. Si un índice coincide con el ORDER BY es posible que la consulta entera no tenga que ser ejecutada. Si no se sabe el número de filas en el SELECT time, utilice un cursor y FETCH. To SELECT a random row, use: SELECT col FROM tab ORDER BY random() LIMIT 1;
4.2) ¿Cómo puedo encontrar qué tablas, índices, bases de datos,
y usuarios estan definidos?
Utilice el comando \dt para ver los tablas en psql. Para obtener una lista completa de los comandos internos de psql puede usar \?. También puede leer el código fuente de psql en el archivo pgsql /src/bin/psql/describe.c, que contiene comandos SQL que generan la salida de la barra psql de comandos. También puede iniciar psql con la opción -E por lo que se imprimirá sin las consultas que se utiliza para ejecutar los comandos que usted da. PostgreSQL También proporciona un INFORMATION SHEMA compatible con SQL interfaz que puede consultar para obtener información sobre la base de datos.
También existen las tablas del sistema que comienza con pg_ que describen
también estas.
Utilice psql-l para listar todas las bases de datos.
Pruebe también el archivo pgsql/src/tutorial/syscat.source.
Ilustra muchos de los SELECT necesarios para obtener información desde
tablas del sistema de bases de datos.
4.3) ¿Cómo cambiar el tipo de datos de una columna?
Cambiar el tipo de datos de una columna que se puede hacer fácilmente en 8.0 y despues
con ALTER TABLE ALTER COLUMN TYPE.
En versiones anteriores, siga estos pasos: BEGIN; ALTER TABLE tab ADD COLUMN new_col new_data_type; UPDATE tab SET new_col = CAST(old_col AS new_data_type); ALTER TABLE tab DROP COLUMN old_col; COMMIT;
puede que entonces quieran hacer VACUUM FULL ficha para recuperar el espacio en disco utilizados por las filas vencidas.
4.4) ¿Cuál es el tamaño máximo de una fila, una tabla, y una base de datos?
Estos son los límites:
¿Tamaño maximo para una base de datos? sin limites (existen bases de datos de 32 TB) ¿Tamaño Maximo para una tabla? 32 TB ¿Tamaño Maximo para una fila? 400 GB ¿Tamaño maximo para un campo? 1 GB ¿Numero Maximo de filas en una tabla? sin limites ¿Numero maximo de columnas en una tabla? 250-1600 dependiendo el tipo de columna ¿Numero maximo de indices en una tabla? sin limites
Por supuesto, esto realmente no es ilimitado,pero esta limitado por el espacio de disco disponible y el espacio de memoria/swap. El rendimiento puede sufrir cuando estos valores inusualmente grandes se obtienen.
El máximo tamaño de una tabla de 32 TB no requiere el soporte de archivos de gran tamaño desde el sistema operativo. Las grandes tablas se almacenan como múltiples archivos de 1 GB, para el sistema de archivos los límites de tamaño no son importantes.
El tamaño máximo de una tabla, el tamaño de la fila, y el número máximo de columnas puede ser cuadruplicado por el aumento del tamaño de bloque por defecto a 32k. El tamaño máximo de la tabla también puede incrementarse utilizando la tabla de particionado.Una limitación es que los índices no pueden ser creados en columnas más largas que alrededor de 2.000 caracteres.Afortunadamente, esos índices son raramente necesarios. La Singularidad es la mejor garantia por una función de un índice hash MD5 el largo de la columna, y la indexación de texto completo permite la búsqueda de las palabras dentro de la columna.
4.5) ¿Cuánto espacio de disco es necesario en una base de datos para
almacenar los datos desde un archivo de texto típico?
Una base de datos PostgreSQL puede requerir hasta cinco veces el espacio en disco para almacenar datos de un archivo de texto.
Como ejemplo, considere un archivo de 100.000 líneas con un entero y
descripción de texto en cada línea. Supongamos que la cadena de texto
avergages veinte bytes de longitud. El archivo plano sería de 2.8 MB.
El tamaño de el Archivo de base de datos PostgreSQL que contenga
estos datos se puede estimar como 5.2
MB:
24 bytes: cada fila de cabecera (aproximado)
24 bytes: un campo int y un campo de texto
+ 4 bytes: punteros en la página de tupla
-------------------------------------------------
52 bytes por filas
El tamaño de página de datos en PostgreSQL es 8192 bytes (8 KB), por lo que:
8192 bytes por pagina
------------------------ = 158 filas por página de base de datos (redondeado hacia abajo)
52 bytes por fila
100000 filas de datos
------------------------ = 633 páginas de base de datos (redondeado hacia arriba)
158 filas por pagina
633 paginas bases de datos * 8192 bytes por pagina = 5,185,536 bytes (5.2 MB)
Los índices no requieren tanta sobrecarga, pero contienen los datos que se están indexando, por lo que pueden ser muy grandes también.
Los valores NULL se almacenan como mapas de bits, por lo que usan muy poco espacio.
