SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
PostgreSQL 9.2




      Ernesto Quiñones Azcárate
         Regional Press Contact
              pe@postgresql.org

                        PostgreSQL 9.2
                                  1/16
PostgreSQL 9.2
   Fecha de lanzamiento: 10 Sep. 2012


  El proyecto PostgreSQL esta
acostumbrandonos a publicar un
   release mayor cada año :)

Y las mejoras como siempre son
          sustanciales.

                                        PostgreSQL 9.2
                                                  2/16
PostgreSQL 9.2

Y los últimos cambios
        son......




                     PostgreSQL 9.2
                               3/16
PostgreSQL 9.2

¿Bases de datos muy grandes?

Soporte comprobado de hasta 64 cores.
●




Esto es muy importante porque PostgreSQL usa
1 core por conexión, mediciones extraoficiales
indican que PostgreSQL administra
eficientemente un nivel de concurrencia de 4 a 6
veces la cantidad de cores que se le asignan.


                                         PostgreSQL 9.2
                                                   4/16
PostgreSQL 9.2

¿Bases de datos muy grandes?

●Index-only Scan
Esto significa....al leer data de tuplas que son parte de un
indice se realiza un “index scan”, el problema es que cuando
se obtiene un set de datos en una lectura se puede haber
modificado datos y los indices apuntan a datos modificados o
inexistentes, solo se puede comprobar el resultado
accediendo a los datos y comprobandolos.
Si se considera que la tabla no será áltamente manipulada,
activar esta nueva funcionalidad nos permite acceder al
menos 5 veces más rápido a los datos ya que no se accede a
la corroboración de los datos en si.

                                                   PostgreSQL 9.2
                                                             5/16
PostgreSQL 9.2

¿Bases de datos muy grandes?

Mejoras en:
●

● Administración de bloqueos.

        ●   Se ha llegado a 350,000 lecturas por segundo.
    ●   Procesos de escritura más eficientes.
        ●   Probado hasta 14,000 grabaciones por segundo.




                                                       PostgreSQL 9.2
                                                                 6/16
PostgreSQL 9.2

¿Necesidad de Redundancia y Escalabilidad?

●9.0 Replicación Asíncrona
●9.1 Replicación Síncrona




..... y ahora Replicación en Cascada


                                      PostgreSQL 9.2
                                                7/16
PostgreSQL 9.2

¿Necesidad de Redundancia y Escalabilidad?

OjO:
●Es asíncrono
●Funciona al estilo de la replicación implementada

en la versión 9.0 copiando los archivos de WAL




                                             PostgreSQL 9.2
                                                       8/16
PostgreSQL 9.2

Nuevos tipos de datos!!!!

Range Types:
Representan rangos de valores, se puede usar con
números enteros (normales y big), numéricos, horas y
fechas, pero podemos crear los nuestros propios
usando “create type”.

CREATE TABLE reservation (room int, during tsrange);
INSERT INTO reservation VALUES
  (1108, '[2010-01-01 14:30, 2010-01-01 15:30)');

                                                  PostgreSQL 9.2
                                                            9/16
PostgreSQL 9.2

Nuevos tipos de datos!!!!

Range Types:
@> contains range
  int4range(2,4) @> int4range(2,3)          <--true

@> contains element
   '[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestamp <--true

<@ range is contained by
  int4range(2,4) <@ int4range(1,7)      <--true

<@ element is contained by
  42 <@ int4range(1,7) <--false

                                                                PostgreSQL 9.2
                                                                         10/16
PostgreSQL 9.2

Nuevos tipos de datos!!!!

JSON:
Ahora PostgreSQL almacena tipos de datos JSON, estos datos son
validados para ser aceptados y luego son almacenados como texto.

Tenemos 2 funciones de apoyo:

● array_to_json(anyarray [, pretty_bool])
● row_to_json(record [, pretty_bool])




                                                       PostgreSQL 9.2
                                                                11/16
PostgreSQL 9.2

Y con el soporte de Json viene PL/V8
Una nueva extensión para programar funciones
en javascript.
CREATE OR REPLACE FUNCTION plv8_test(keys text[], vals text[]) RETURNS
text AS $$
var o = {};
for(var i=0; i<keys.length; i++){
 o[keys[i]] = vals[i];
}
return JSON.stringify(o);
$$ LANGUAGE plv8 IMMUTABLE STRICT;

SELECT plv8_test(ARRAY['name', 'age'], ARRAY['Tom', '29']);



                                                                  PostgreSQL 9.2
                                                                           12/16
PostgreSQL 9.2

     PL/Coffee
CREATE OR REPLACE FUNCTION simple_search_inventory(param_search json)
  RETURNS json AS
$$
o = JSON.parse(param_search);
/** Take a json search request and output a json dataset **/
rs = plv8.execute("SELECT prod_code, prod_name FROM inventory WHERE prod_name ILIKE $1 LIMIT $2
OFFSET($3 - 1)*$2", [o.prod_name_search, o.num_per_page, o.page_num]);
return JSON.stringify(rs);
$$
  LANGUAGE plv8 VOLATILE;

CREATE OR REPLACE FUNCTION simple_search_inventory(param_search json)
 RETURNS json AS
$$
o = JSON.parse(param_search)
## Take a json search request and output a json dataset
rs = plv8.execute("SELECT prod_code, prod_name FROM inventory WHERE prod_name ILIKE $1 LIMIT $2
OFFSET ($3 - 1)*$2", [o.prod_name_search, o.num_per_page, o.page_num])
return JSON.stringify(rs)
$$
 LANGUAGE plcoffee VOLATILE;

                                                                                 PostgreSQL 9.2
                                                                                          13/16
PostgreSQL 9.2
Una nueva herramienta para los DBAs
pg_stat_statement para descubrir cuantas veces
un query ha sido ejecutado:
=#SELECT * FROM words WHERE word= 'foo';
 word 
­­­­­­    
(0 ligne)

=# SELECT * FROM words WHERE word= 'bar';
 word 
­­­­­­
 Bar

=#select * from pg_stat_statements where query like '%words where%';
­[ RECORD 1 ]­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
userid              | 10
dbid                | 16384
query               | SELECT * FROM words WHERE word= ?;
calls               | 2                                       PostgreSQL 9.2
total_time          | 142.314                                          14/16
PostgreSQL 9.2
Todo esto y muchas más:
http://www.postgresql.org/docs/9.2/static
/release­9­2.html




                                   PostgreSQL 9.2
                                            15/16
Los invitamos a probar esta nueva
     versión......GRACIAS!!!!!




               Ernesto Quiñones Azcárate
                  Regional Press Contact
                       pe@postgresql.org

                                 PostgreSQL 9.2
                                          16/16

Más contenido relacionado

La actualidad más candente

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 

La actualidad más candente (19)

Eclipse refactoring
Eclipse refactoringEclipse refactoring
Eclipse refactoring
 
Update Big Data 2014
Update Big Data 2014Update Big Data 2014
Update Big Data 2014
 
High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on Linux
 
Hibernate - JPA @luce
Hibernate - JPA @luceHibernate - JPA @luce
Hibernate - JPA @luce
 
FUNCIONES EN PHP
FUNCIONES EN PHPFUNCIONES EN PHP
FUNCIONES EN PHP
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: Desarrollo
 
Slideshare
SlideshareSlideshare
Slideshare
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
T32
T32T32
T32
 
Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4
 
Guia 9
Guia 9Guia 9
Guia 9
 
Guia 9
Guia 9Guia 9
Guia 9
 
Unidad 6: Flujos y Archivos Ejercicio 1
Unidad 6: Flujos y Archivos Ejercicio 1Unidad 6: Flujos y Archivos Ejercicio 1
Unidad 6: Flujos y Archivos Ejercicio 1
 
Giseproi hacking ético - bash scripting
Giseproi   hacking ético - bash scriptingGiseproi   hacking ético - bash scripting
Giseproi hacking ético - bash scripting
 
Unidad 6: Flujos y Archivos Ejercicio 3
Unidad 6: Flujos y Archivos Ejercicio 3Unidad 6: Flujos y Archivos Ejercicio 3
Unidad 6: Flujos y Archivos Ejercicio 3
 
CapITULO 9
CapITULO 9CapITULO 9
CapITULO 9
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Laborqatoio 1 telematica
Laborqatoio 1 telematicaLaborqatoio 1 telematica
Laborqatoio 1 telematica
 
codigos
codigos codigos
codigos
 

Similar a PostgreSQL 9.2

Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
Marcos Ortiz Valmaseda
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
Lucia Zambrano Franco
 
Base de datos_-_material_didactico
Base de datos_-_material_didacticoBase de datos_-_material_didactico
Base de datos_-_material_didactico
enriquehot
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
Leonardo Cezar
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 

Similar a PostgreSQL 9.2 (20)

Presentación de Postgresql 9.1
Presentación de Postgresql 9.1Presentación de Postgresql 9.1
Presentación de Postgresql 9.1
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
 
PostgreSQL BDR - Altenwald.pdf
PostgreSQL BDR - Altenwald.pdfPostgreSQL BDR - Altenwald.pdf
PostgreSQL BDR - Altenwald.pdf
 
Evolución y avances del Gestor PostgreSQL
Evolución y avances del  Gestor PostgreSQLEvolución y avances del  Gestor PostgreSQL
Evolución y avances del Gestor PostgreSQL
 
Características nosql de postgresql
Características nosql de postgresqlCaracterísticas nosql de postgresql
Características nosql de postgresql
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Postgre
PostgrePostgre
Postgre
 
Pg pool cluster postgresql
Pg pool cluster postgresqlPg pool cluster postgresql
Pg pool cluster postgresql
 
Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
 
Base de datos_-_material_didactico
Base de datos_-_material_didacticoBase de datos_-_material_didactico
Base de datos_-_material_didactico
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
 
PostgreSQL À la Debian
PostgreSQL À la DebianPostgreSQL À la Debian
PostgreSQL À la Debian
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 

Más de EQ SOFT EIRL

Más de EQ SOFT EIRL (20)

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en Twitter
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación Aplicada
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agraria
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en Logística
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financiera
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en Latinoamérica
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración Pública
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBot
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to Text
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de Conocimientos
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia Artificial
 
Internet of Food
Internet of FoodInternet of Food
Internet of Food
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia Artificial
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade Digital
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big Data
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoft
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesos
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 

PostgreSQL 9.2

  • 1. PostgreSQL 9.2 Ernesto Quiñones Azcárate Regional Press Contact pe@postgresql.org PostgreSQL 9.2 1/16
  • 2. PostgreSQL 9.2 Fecha de lanzamiento: 10 Sep. 2012 El proyecto PostgreSQL esta acostumbrandonos a publicar un release mayor cada año :) Y las mejoras como siempre son sustanciales. PostgreSQL 9.2 2/16
  • 3. PostgreSQL 9.2 Y los últimos cambios son...... PostgreSQL 9.2 3/16
  • 4. PostgreSQL 9.2 ¿Bases de datos muy grandes? Soporte comprobado de hasta 64 cores. ● Esto es muy importante porque PostgreSQL usa 1 core por conexión, mediciones extraoficiales indican que PostgreSQL administra eficientemente un nivel de concurrencia de 4 a 6 veces la cantidad de cores que se le asignan. PostgreSQL 9.2 4/16
  • 5. PostgreSQL 9.2 ¿Bases de datos muy grandes? ●Index-only Scan Esto significa....al leer data de tuplas que son parte de un indice se realiza un “index scan”, el problema es que cuando se obtiene un set de datos en una lectura se puede haber modificado datos y los indices apuntan a datos modificados o inexistentes, solo se puede comprobar el resultado accediendo a los datos y comprobandolos. Si se considera que la tabla no será áltamente manipulada, activar esta nueva funcionalidad nos permite acceder al menos 5 veces más rápido a los datos ya que no se accede a la corroboración de los datos en si. PostgreSQL 9.2 5/16
  • 6. PostgreSQL 9.2 ¿Bases de datos muy grandes? Mejoras en: ● ● Administración de bloqueos. ● Se ha llegado a 350,000 lecturas por segundo. ● Procesos de escritura más eficientes. ● Probado hasta 14,000 grabaciones por segundo. PostgreSQL 9.2 6/16
  • 7. PostgreSQL 9.2 ¿Necesidad de Redundancia y Escalabilidad? ●9.0 Replicación Asíncrona ●9.1 Replicación Síncrona ..... y ahora Replicación en Cascada PostgreSQL 9.2 7/16
  • 8. PostgreSQL 9.2 ¿Necesidad de Redundancia y Escalabilidad? OjO: ●Es asíncrono ●Funciona al estilo de la replicación implementada en la versión 9.0 copiando los archivos de WAL PostgreSQL 9.2 8/16
  • 9. PostgreSQL 9.2 Nuevos tipos de datos!!!! Range Types: Representan rangos de valores, se puede usar con números enteros (normales y big), numéricos, horas y fechas, pero podemos crear los nuestros propios usando “create type”. CREATE TABLE reservation (room int, during tsrange); INSERT INTO reservation VALUES (1108, '[2010-01-01 14:30, 2010-01-01 15:30)'); PostgreSQL 9.2 9/16
  • 10. PostgreSQL 9.2 Nuevos tipos de datos!!!! Range Types: @> contains range int4range(2,4) @> int4range(2,3) <--true @> contains element '[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestamp <--true <@ range is contained by int4range(2,4) <@ int4range(1,7) <--true <@ element is contained by 42 <@ int4range(1,7) <--false PostgreSQL 9.2 10/16
  • 11. PostgreSQL 9.2 Nuevos tipos de datos!!!! JSON: Ahora PostgreSQL almacena tipos de datos JSON, estos datos son validados para ser aceptados y luego son almacenados como texto. Tenemos 2 funciones de apoyo: ● array_to_json(anyarray [, pretty_bool]) ● row_to_json(record [, pretty_bool]) PostgreSQL 9.2 11/16
  • 12. PostgreSQL 9.2 Y con el soporte de Json viene PL/V8 Una nueva extensión para programar funciones en javascript. CREATE OR REPLACE FUNCTION plv8_test(keys text[], vals text[]) RETURNS text AS $$ var o = {}; for(var i=0; i<keys.length; i++){ o[keys[i]] = vals[i]; } return JSON.stringify(o); $$ LANGUAGE plv8 IMMUTABLE STRICT; SELECT plv8_test(ARRAY['name', 'age'], ARRAY['Tom', '29']); PostgreSQL 9.2 12/16
  • 13. PostgreSQL 9.2 PL/Coffee CREATE OR REPLACE FUNCTION simple_search_inventory(param_search json) RETURNS json AS $$ o = JSON.parse(param_search); /** Take a json search request and output a json dataset **/ rs = plv8.execute("SELECT prod_code, prod_name FROM inventory WHERE prod_name ILIKE $1 LIMIT $2 OFFSET($3 - 1)*$2", [o.prod_name_search, o.num_per_page, o.page_num]); return JSON.stringify(rs); $$ LANGUAGE plv8 VOLATILE; CREATE OR REPLACE FUNCTION simple_search_inventory(param_search json) RETURNS json AS $$ o = JSON.parse(param_search) ## Take a json search request and output a json dataset rs = plv8.execute("SELECT prod_code, prod_name FROM inventory WHERE prod_name ILIKE $1 LIMIT $2 OFFSET ($3 - 1)*$2", [o.prod_name_search, o.num_per_page, o.page_num]) return JSON.stringify(rs) $$ LANGUAGE plcoffee VOLATILE; PostgreSQL 9.2 13/16
  • 14. PostgreSQL 9.2 Una nueva herramienta para los DBAs pg_stat_statement para descubrir cuantas veces un query ha sido ejecutado: =#SELECT * FROM words WHERE word= 'foo';  word  ­­­­­­     (0 ligne) =# SELECT * FROM words WHERE word= 'bar';  word  ­­­­­­  Bar =#select * from pg_stat_statements where query like '%words where%'; ­[ RECORD 1 ]­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ userid              | 10 dbid                | 16384 query               | SELECT * FROM words WHERE word= ?; calls               | 2 PostgreSQL 9.2 total_time          | 142.314 14/16
  • 16. Los invitamos a probar esta nueva versión......GRACIAS!!!!! Ernesto Quiñones Azcárate Regional Press Contact pe@postgresql.org PostgreSQL 9.2 16/16