SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Determinando cuellos de
                       Botella en PostgreSQL




                                                 Ernesto Quiñones Azcárate
                                                        ernesto@eqsoft.net


EQ Soft Consultoría y Soporte E.I.R.L.                               PgDay 2012
Http://www.eqsoft.net                                                      1/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Hace un año




              Hablamos de Análisis de Querys


EQ Soft Consultoría y Soporte E.I.R.L.                            PgDay 2012
Http://www.eqsoft.net                                                   2/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Recordemos..........


 Análisis de Querys – Explain

 Explain permite visualizar el plan de ejecución de un query, el plan de 
 ejecución son los pasos que sigue la dmbs para procesar la consulta, tabla 
 por tabla con la que trabaja, las uniones, tipos de índices que utiliza, 
 tuplas movidas, etc.

 prueba4=# explain select * from regla;
                        QUERY PLAN                        
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Seq Scan on regla  (cost=0.00..18.00 rows=800 width=72)
 (1 row)




EQ Soft Consultoría y Soporte E.I.R.L.                             PgDay 2012
Http://www.eqsoft.net                                                    3/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Recordemos..........


 Análisis de Querys – Explain
 Para ver los comandos usados y los tiempos de respuesta
 prueba4=# explain analyze select * from regla; 
                                             QUERY PLAN                                             
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Seq Scan on regla  (cost=0.00..18.00 rows=800 width=72) (actual time=0.012..0.016 rows=2 loops=1)
  Total runtime: 0.070 ms
 (2 rows)


 Informa los campos requeridos en la consulta

 prueba4=# explain verbose select * from regla;        
                            QUERY PLAN                           
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Seq Scan on public.regla  (cost=0.00..18.00 rows=800 width=72)
    Output: id, nombre
 (2 rows)

 prueba4=# explain analyze verbose select * from regla;
                                                 QUERY PLAN                                                
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Seq Scan on public.regla  (cost=0.00..18.00 rows=800 width=72) (actual time=0.010..0.013 rows=2 loops=1)
    Output: id, nombre
  Total runtime: 0.050 ms
 (3 rows)




EQ Soft Consultoría y Soporte E.I.R.L.                                                                        PgDay 2012
Http://www.eqsoft.net                                                                                               4/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Recordemos..........


 Análisis de Querys – Explain
 Los Explain siempre se deben leer de “adentro hacia afuera”.

 prueba4=# explain select * from factura_cab a  join factura_det b on a.id =b.fac_id;
                                   QUERY PLAN                                  
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Merge Join  (cost=260.93..525.73 rows=17120 width=29)
    Merge Cond: (b.fac_id = a.id)
    ­>  Sort  (cost=111.15..115.15 rows=1600 width=21)
          Sort Key: b.fac_id
          ­>  Seq Scan on factura_det b  (cost=0.00..26.00 rows=1600 width=21)
    ­>  Sort  (cost=149.78..155.13 rows=2140 width=8)
          Sort Key: a.id
          ­>  Seq Scan on factura_cab a  (cost=0.00..31.40 rows=2140 width=8)
 (8 rows)


 El primer explain fue hecho sin hacer un VACUMM a las tablas, en el segundo se 
 procedió a ello, nótese las diferencia en las cifras, esto se debe a las estadísticas.

 prueba4=# explain select * from factura_cab a  join factura_det b on a.id =b.fac_id;
                                QUERY PLAN                                
 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  Hash Join  (cost=1.07..2.16 rows=4 width=25)
    Hash Cond: (b.fac_id = a.id)
    ­>  Seq Scan on factura_det b  (cost=0.00..1.04 rows=4 width=17)
    ­>  Hash  (cost=1.03..1.03 rows=3 width=8)
          ­>  Seq Scan on factura_cab a  (cost=0.00..1.03 rows=3 width=8)
 (5 rows)




EQ Soft Consultoría y Soporte E.I.R.L.                                                  PgDay 2012
Http://www.eqsoft.net                                                                         5/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Recordemos..........


 Análisis de Querys – Explain
 Para determinar si un índice debe ser utilizado, PostgreSQL debe tener estadísticas 
 sobre la tabla. Estas estadísticas se recolectan mediante VACUUM ANALYZE, o 
 simplemente ANALYZE. Usando las estadísticas, el optimizador sabe cuántas son las 
 filas en la tabla, y puede determinar mejor si los índices deben utilizarse. Las 
 estadísticas son también valiosas en la determinación de un orden óptimo y métodos de 
 unión. La recolección de Estadísticas debe ser realiza periódicamente como el cambio 
 de contenido de la tabla.

 El costo:

 (cost=149.78..155.13 rows=2140 width=8)
 149.78    <­­ costo inicial de traer la primera tupla
 155.13    <­­ costo total estimado
 Rows=2140 <­­ filas escaneadas
 Width=8   <­­ filas de salida

 El costo total estimado se calcula sobre la siguiente formula 
 (disk pages read * seq_page_cost) + (rows scanned * cpu_tuple_cost)

 seq_page_cost  <­­ costo de acceso a las páginas de la data            (1.00 default)
 cpu_tuple_cost <­­ costo del proceso de cada fila durante la consultas (0.01 default)



EQ Soft Consultoría y Soporte E.I.R.L.                                      PgDay 2012
Http://www.eqsoft.net                                                             6/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Recordemos..........


 Espiando lo que hacen los Querys.

 Para lograr esto debemos modificar el postgresql.conf y activar algunas opciones
 de debug que no están activas por defecto.

 log_error_verbosity = VERBOSE     #nivel de detalle si loggea algo

 log_min_error_statement = FATAL   #solo log de querys que son totalmente perjudiciales
                                    para la dbms

 log_min_duration_statement = 1000 #log de aquellos querys que duran más de 1 segundo,
                                    si ya se sabe que hay muchos así, entonces subir a
                                    2000 o 5000 lo que sea más adecuado o se considere
                                    demasiado tiempo

 debug_print_plan = On             #para que imprima el plan de ejecución de los querys
                                    Largos

 debug_pretty_print = On           #para que imprima el log de los querys en un forma
                                    adecuado, decente de leer

 log_lock_waits  = On              #para ver si tenemos problemas de bloqueos



EQ Soft Consultoría y Soporte E.I.R.L.                                      PgDay 2012
Http://www.eqsoft.net                                                             7/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Los bloqueos
             Lock                         Usado en                                          Tiene problemas

 ACCESS SHARE                Se ejecuta un Select sobre una tabla   No



 ROW SHARE                   Se ejecuta un Select sobre una tabla   Solo si hay un bloqueo exclusivo sobre la tabla

 ROW EXCLUSIVE               Se ejecuta UPDATE / DELETE /           Solo si hay un bloqueo exclusivo sobre la tabla o registro. +
                             INSERT en una tabla                    SHARE

 SHARE UPDATE EXCLUSIVE      por Vacuum, Analyze y creación de      Con cualquier bloqueo exclusivo con el que concurra + SHARE
                             índices


 SHARE                       creación/actualización de indices      Con cualquier bloqueo exclusivo con el que concurra

 SHARE ROW EXCLUSIVE         Se lanza manualmente                   Con cualquier bloqueo exclusivo con el que concurra + SHARE

 EXCLUSIVE                   Se lanza manualmente, solo permite     Con todos los bloqueos excepto ACCESS SHARE
                             ACCESS SHARE


 ACCESS EXCLUSIVE            Cambios de estructura de la tabla,     Con todos los bloqueos (debe esperar a que terminen)
                             Vacuum Full y procesos de
                             regeneración de índices




EQ Soft Consultoría y Soporte E.I.R.L.                                                                                PgDay 2012
Http://www.eqsoft.net                                                                                                       8/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Pero hay más.....


 Administración – Procesos
 a)TOP y HTOP

 TOP es un comando convencional de Linux / Unix que nos permite ver los procesos que se 
 ejecutan en el servidor.

 Los procesos ejecutados por PostgreSQL son normalmente ejecutados por los usuarios 
 “postgres”, “pgsql” ó “postmaster”.

 ernesto@depeche:~/aaa$ ps aux | egrep postgres
 postgres   961  0.0  0.1 101580  2228 ?        S    Oct08   0:06 /usr/lib/postgresql/8.4/bin/postgres ­D 
 /var/lib/postgresql/8.4/main ­c config_file=/etc/postgresql/8.4/main/postgresql.conf
 postgres   989  0.0  0.3 101704  6208 ?        Ss   Oct08   0:11 postgres: writer process                                
 postgres   990  0.0  0.0 101580   568 ?        Ss   Oct08   0:08 postgres: wal writer process                            
 postgres   991  0.0  0.0 102380  1320 ?        Ss   Oct08   0:09 postgres: autovacuum launcher process                   
 postgres   992  0.0  0.0  73704   848 ?        Ss   Oct08   0:17 postgres: stats collector process                       

 Recuerde que PostgreSQL maneja un procesador por conexión, si tiene varios 
 procesadores un proceso lanzado no usará varios procesadores, solo uno, deja los otros 
 disponibles para otras conexiones que lanzan sus propios procesos, la ventaja del uso 
 de esta funcionalidad se complementa con la capacidad de administración de usuarios 
 concurrentes que tenga el sistema operativo que se está usando (que soporte SMP).

 Nunca mate un proceso que demora mucho 



EQ Soft Consultoría y Soporte E.I.R.L.                                                                     PgDay 2012
Http://www.eqsoft.net                                                                                            9/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Pero hay más.....


 Administración – Procesos
 b)PG_TOP
 http://ptop.projects.postgresql.org/
 El paquete instalador en Ubuntu es PTOP e instala la aplicación pg_top.

 ernesto@depeche:~/aaa$ pg_top ­­help
 pg_top: invalid option ­­ '­'
 pg_top version 3.6.2
 Usage: pg_top [­ITWbcinqu] [­x x] [­s x] [­o field] [­z username]
           [­p PORT] [­U USER] [­d DBNAME] [­h HOSTNAME] [number]

 ernesto@depeche:~/aaa$ pg_top ­U dbadmin ­d prueba5

 En una consola:
 prueba5=# begin;
 prueba5=# lock alumnos in exclusive mode;

 En otra Consola:
 prueba5=# insert into alumnos values(5,'chicho',12,'nada');

 Pg­Top nos muestra:
 ast pid: 29499;  load avg:  1.59,  1.59,  1.69;       up 1+03:48:24                                                      
 3 processes: 3 sleeping
 CPU states: 47.0% user,  2.6% nice,  8.8% system, 40.5% idle,  1.1% iowait
 Memory: 1920M used, 81M free, 26M buffers, 659M cached
 Swap: 375M used, 1532M free, 45M cached
   PID USERNAME PRI NICE  SIZE   RES STATE   TIME   WCPU    CPU COMMAND
 29500 postgres  20    0  102M 4232K sleep   0:00  0.02%  0.20% postgres: dbadmin prueba5 [local] idle                    
 29215 postgres  20    0  102M 5048K sleep   0:00  0.00%  0.00% postgres: dbadmin prueba5 [local] idle in transaction     
 29396 postgres  20    0  102M 3628K sleep   0:00  0.00%  0.00% postgres: dbadmin prueba5 [local] INSERT waiting   



EQ Soft Consultoría y Soporte E.I.R.L.                                                                     PgDay 2012
Http://www.eqsoft.net                                                                                           10/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
Pero hay más.....


 Administración – Procesos
 b)PG_TOP
 A     <­­ permite ver el plan de ejecución de un query, especifique el PID del proceso
 C     <­­ activa/desactiva color
 c     <­­ permite ver la linea de comandos completa
 D     <­­ cambia página de listado
 h ó ? <­­ help
 E     <­­ ver versión actualizada del plan de ejecución
 e     <­­ permite ver errores del sistema
 I     <­­ ver/no ver procesos en espera o durmiendo
 K     <­­ mata un proceso, indicar el pid
 L     <­­ permite ver los locs del proceso, especificar el pid
 M     <­­ ordena por uso de memoria
 N     <­­ ordena por número de proceso
 n ó # <­­indica cuantos procesos se pueden ver, máximo 65
 O     <­­ cambia el orden de muestra dependiendo un parámetro especial ("cpu", "res", "size", "time",
           "seq_scan", "seq_tup_read",  "idx_scan",  "idx_tup_fetch",  "n_tup_ins","n_tup_upd", "n_tup_del")
 P     <­­ ordena por utilización del proceso
 Q     <­­ muestra el query, especificar el pid
 q     <­­ Quit
 R     <­­ Display user table statistics.
 r     <­­ ??
 s     <­­ cambia la cantidad de segundos de refresco de la pantalla
 T     <­­ ordena por tiempo de ejecución
 T     <­­ ??
 U     <­­ muestra los procesos de un usuario, ingresar el usuario 
 X     <­­ muestra las estadísticas de los índices



EQ Soft Consultoría y Soporte E.I.R.L.                                                           PgDay 2012
Http://www.eqsoft.net                                                                                 11/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum
 El Vacuum es una de las más importantes tareas de administración, lo que hace es 
 limpiar las “páginas” no usadas por el sistema y actualiza las estadísticas de las 
 tablas e índices para una mejor resolución de querys.

 La dbms ejecuta periodicamente (definido en postgresql.conf) un Lazy Vacuum, esto es 
 libera páginas no usadas por data, más no por índice, este vacuum no genera demasiado 
 tiempo de bloqueo en la tabla (depende el tamaño).




EQ Soft Consultoría y Soporte E.I.R.L.                                      PgDay 2012
Http://www.eqsoft.net                                                            12/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum
 El full vacuum requiere acceso exclusivo a la tabla durante el tiempo que demoré la 
 operación, esta limpiara totalmente las páginas no usadas.

 Mejora notablemente el tiempo de acceso a los datos.




EQ Soft Consultoría y Soporte E.I.R.L.                                      PgDay 2012
Http://www.eqsoft.net                                                            13/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum
 Se pueden aplicar Vaccums a nivel de tabla o base de datos.

 ●Vacuum full TABLA    <­­ limpia todo el espacio no utilizado, reescribe totalmente la
                           tabla por lo cual consume más espacio.
 ●Vacuum analyze TABLA <­­ actualiza las estadísticas para e generador de plan de


                           ejecución.
 ●Vacuum TABLA         <­­ solo limpia data y reorganiza las páginas.




 Se puede añadir de precisión un Vacuum sobre un campo.

 “Vacuumdb” se utiliza externamente desde la linea de comandos del sistema operativo 
 para ejecutar la operación sobre la base de datos seleccionada.

 ernesto@depeche:~$ vacuumdb ­­full prueba5 ­U dbadmin    




EQ Soft Consultoría y Soporte E.I.R.L.                                       PgDay 2012
Http://www.eqsoft.net                                                             14/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum

 El Vacuum es bueno, es importante ..... pero ...... imaginen un entorno de alta
 concurrencia y que el vacuum se lance en un momento de alta carga.




EQ Soft Consultoría y Soporte E.I.R.L.                                       PgDay 2012
Http://www.eqsoft.net                                                             15/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum

 Tenemos que modificar el postgresql.conf nuevamente.

 autovacuum_naptime indica el periodo de tiempo en los cuales verificará si las tablas de
 una db necesitan ejecutar un autovacuum, no indica o fuerza un vacuum.

 autovacuum_vacuum_threshold y autovacuum_analyze_threshold indica la cantidad de
 TUPLAS que deben ser modificadas para justificar que se realice un VACUUM y un
 ANALYZE, una TUPLA no es igual a una página ni a un registro es una unidad que puede
 tener información de data, estructuras o índices.

 autovacuum_vacuum_scale_factor y autovacuum_analyze_scale_factor indica el porcentaje
 del total de registros en una tabla que debe ser modificado antes de que se lance un
 VACUUM o un ANALYZE, por defecto el valor de VACUUM es 0.2 eso significa 20% y en
 ANALYZE es 0.1 que es 10%, en otras palabras, si tenemos una tabla de 100,000 registros
 y cambiamos 12,000 entonces se ejecutará un ANALYZE pero no un VACUUM, cuando se
 modifiquen 20,001 registros entonces se lanzará el VACUUM.

 autovacuum_freeze_max_age es solo una medida de seguridad, el AUTOVACUUM el
 PostgreSQL lo lanza automáticamente por seguridad, por defecto sucederá cada
 200millones de transacciones.




EQ Soft Consultoría y Soporte E.I.R.L.                                          PgDay 2012
Http://www.eqsoft.net                                                                16/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....


 Vacuum

 Tenemos que modificar el postgresql.conf nuevamente.

 autovacuum_vacuum_cost_limit, el COST_LIMIT es el “COSTO” de operaciones máximo que
 ejecutará la base de datos durante un AUTOVACUUM antes de pararse y esperar un
 determinado tiempo, especificado por autovacuum_vacuum_cost_delay y continuar.

 Como el proceso de VACUUM genera mucho estrés en la DB esto bloquea eventualmente
 las tablas, como los VACUUM y AUTOVACUUM se lanzan en caliente (osea sin impedir que
 los usuarios puedan seguir trabajando con la base de datos) es necesario indicarle a la DB
 cuanto tiempo puede trabajar en estás tareas.

 El COSTO no es fácil de calcular, por ejemplo:

 buscar y acceder a una página vale 1
 leer la página vale 10
 manipular y limpiar una página vacía 20
 COSTO TOTAL 31




EQ Soft Consultoría y Soporte E.I.R.L.                                          PgDay 2012
Http://www.eqsoft.net                                                                17/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
El tema de los Vacuums....




                             GRACIAS POR SU ATENCION




EQ Soft Consultoría y Soporte E.I.R.L.                            PgDay 2012
Http://www.eqsoft.net                                                  18/18
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957

Más contenido relacionado

La actualidad más candente

Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsJignesh Shah
 
Bash shell scripting
Bash shell scriptingBash shell scripting
Bash shell scriptingVIKAS TIWARI
 
Tutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginTutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginsearchbox-com
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1EQ SOFT EIRL
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...HostedbyConfluent
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationEDB
 
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...ScaleGrid.io
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxNeoClova
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법Young D
 
Automate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleAutomate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleIvica Arsov
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB plc
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell ScriptingRaghu nath
 
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...Equnix Business Solutions
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniZalando Technology
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대PgDay.Seoul
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Henning Jacobs
 

La actualidad más candente (20)

Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
 
Bash shell scripting
Bash shell scriptingBash shell scripting
Bash shell scripting
 
Tutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component pluginTutorial on developing a Solr search component plugin
Tutorial on developing a Solr search component plugin
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
 
Automate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleAutomate DBA Tasks With Ansible
Automate DBA Tasks With Ansible
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & Optimization
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell Scripting
 
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
PGConf.ASIA 2019 Bali - Setup a High-Availability and Load Balancing PostgreS...
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
 

Destacado

Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2EQ SOFT EIRL
 
pg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLpg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLMark Wong
 
Brochure EqSoft - 2017
Brochure EqSoft - 2017Brochure EqSoft - 2017
Brochure EqSoft - 2017EQ SOFT EIRL
 
Brochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para MuseosBrochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para MuseosEQ SOFT EIRL
 
Que es linux y que es Software Libre
Que es linux y que es Software LibreQue es linux y que es Software Libre
Que es linux y que es Software LibreEQ SOFT EIRL
 
Negocios con software libre
Negocios con software libreNegocios con software libre
Negocios con software libreEQ SOFT EIRL
 
Vigenere encryption Engine for Educational Purposes
Vigenere encryption Engine for Educational PurposesVigenere encryption Engine for Educational Purposes
Vigenere encryption Engine for Educational PurposesEQ SOFT EIRL
 
Social Media Marketing
Social Media MarketingSocial Media Marketing
Social Media MarketingEQ SOFT EIRL
 
Iniciativa cluster lima tech
Iniciativa cluster lima techIniciativa cluster lima tech
Iniciativa cluster lima techEQ SOFT EIRL
 
Big Data en Beneficio del Ciudadano
Big Data en Beneficio del CiudadanoBig Data en Beneficio del Ciudadano
Big Data en Beneficio del CiudadanoEQ SOFT EIRL
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresqlesmeraldaq2011
 
Manual de como conformar Consorcios
Manual de como conformar ConsorciosManual de como conformar Consorcios
Manual de como conformar ConsorciosEQ SOFT EIRL
 
Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0EQ SOFT EIRL
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLCarlos Gustavo Ruiz
 
Emite - Facturación Electrónica
Emite - Facturación ElectrónicaEmite - Facturación Electrónica
Emite - Facturación ElectrónicaEQ SOFT EIRL
 
Servicios de TI de Eq Soft
Servicios de TI de Eq SoftServicios de TI de Eq Soft
Servicios de TI de Eq SoftEQ SOFT EIRL
 

Destacado (20)

Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
 
pg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQLpg_top is 'top' for PostgreSQL
pg_top is 'top' for PostgreSQL
 
Brochure EqSoft - 2017
Brochure EqSoft - 2017Brochure EqSoft - 2017
Brochure EqSoft - 2017
 
Brochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para MuseosBrochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para Museos
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
demo2.ppt
demo2.pptdemo2.ppt
demo2.ppt
 
Postgre
PostgrePostgre
Postgre
 
Que es linux y que es Software Libre
Que es linux y que es Software LibreQue es linux y que es Software Libre
Que es linux y que es Software Libre
 
Negocios con software libre
Negocios con software libreNegocios con software libre
Negocios con software libre
 
Vigenere encryption Engine for Educational Purposes
Vigenere encryption Engine for Educational PurposesVigenere encryption Engine for Educational Purposes
Vigenere encryption Engine for Educational Purposes
 
Social Media Marketing
Social Media MarketingSocial Media Marketing
Social Media Marketing
 
Iniciativa cluster lima tech
Iniciativa cluster lima techIniciativa cluster lima tech
Iniciativa cluster lima tech
 
Big Data en Beneficio del Ciudadano
Big Data en Beneficio del CiudadanoBig Data en Beneficio del Ciudadano
Big Data en Beneficio del Ciudadano
 
Cluster lima tech
Cluster lima techCluster lima tech
Cluster lima tech
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
Manual de como conformar Consorcios
Manual de como conformar ConsorciosManual de como conformar Consorcios
Manual de como conformar Consorcios
 
Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0Sistema de Replicación de DBs de PostgreSQL 9.0
Sistema de Replicación de DBs de PostgreSQL 9.0
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
Emite - Facturación Electrónica
Emite - Facturación ElectrónicaEmite - Facturación Electrónica
Emite - Facturación Electrónica
 
Servicios de TI de Eq Soft
Servicios de TI de Eq SoftServicios de TI de Eq Soft
Servicios de TI de Eq Soft
 

Similar a Cuellos botella en PostgreSQL

Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Eduardo Castro
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Salvador Ramos
 
Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Eduardo Castro
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
ManualitosqlserverOca srl
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011josecuartas
 
Practicas en matlab
Practicas en matlabPracticas en matlab
Practicas en matlabbachispasaca
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM Kamisutra
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sqlSuarezJhon
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLSpanishPASSVC
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenadoshirmaroxana13
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 

Similar a Cuellos botella en PostgreSQL (20)

Vistazo a SQL Server 2016
Vistazo a SQL Server 2016Vistazo a SQL Server 2016
Vistazo a SQL Server 2016
 
Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)Curso de SQL Server: implementacion (T-SQL)
Curso de SQL Server: implementacion (T-SQL)
 
Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016Vistazo a lo nuevo en SQL Server 2016
Vistazo a lo nuevo en SQL Server 2016
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Textos sqli_mssql
 Textos sqli_mssql Textos sqli_mssql
Textos sqli_mssql
 
Charla Mysql
Charla MysqlCharla Mysql
Charla Mysql
 
Practicas en matlab
Practicas en matlabPracticas en matlab
Practicas en matlab
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Optimiza tus queries desde abajo
Optimiza tus queries desde abajoOptimiza tus queries desde abajo
Optimiza tus queries desde abajo
 
Dominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQLDominando las funciones de ventana (window functions) en TSQL
Dominando las funciones de ventana (window functions) en TSQL
 
Postgres trigger
Postgres triggerPostgres trigger
Postgres trigger
 
Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
Expo
ExpoExpo
Expo
 

Más de EQ SOFT EIRL

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-19EQ SOFT EIRL
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en TwitterEQ SOFT EIRL
 
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 ArtificialEQ SOFT EIRL
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaEQ SOFT EIRL
 
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 agrariaEQ SOFT EIRL
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en LogísticaEQ SOFT EIRL
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financieraEQ SOFT EIRL
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaEQ SOFT EIRL
 
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úblicaEQ SOFT EIRL
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019EQ SOFT EIRL
 
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 ChatBotEQ SOFT EIRL
 
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 TextEQ SOFT EIRL
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosEQ SOFT EIRL
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialEQ SOFT EIRL
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialEQ SOFT EIRL
 
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 DigitalEQ SOFT EIRL
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataEQ SOFT EIRL
 
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 EqSoftEQ SOFT EIRL
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosEQ 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

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 

Último (20)

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 

Cuellos botella en PostgreSQL

  • 1. Determinando cuellos de Botella en PostgreSQL Ernesto Quiñones Azcárate ernesto@eqsoft.net EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 1/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 2. Hace un año Hablamos de Análisis de Querys EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 2/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 3. Recordemos.......... Análisis de Querys – Explain Explain permite visualizar el plan de ejecución de un query, el plan de  ejecución son los pasos que sigue la dmbs para procesar la consulta, tabla  por tabla con la que trabaja, las uniones, tipos de índices que utiliza,  tuplas movidas, etc. prueba4=# explain select * from regla;                        QUERY PLAN                         ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Seq Scan on regla  (cost=0.00..18.00 rows=800 width=72) (1 row) EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 3/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 4. Recordemos.......... Análisis de Querys – Explain Para ver los comandos usados y los tiempos de respuesta prueba4=# explain analyze select * from regla;                                              QUERY PLAN                                              ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Seq Scan on regla  (cost=0.00..18.00 rows=800 width=72) (actual time=0.012..0.016 rows=2 loops=1)  Total runtime: 0.070 ms (2 rows) Informa los campos requeridos en la consulta prueba4=# explain verbose select * from regla;                                    QUERY PLAN                            ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Seq Scan on public.regla  (cost=0.00..18.00 rows=800 width=72)    Output: id, nombre (2 rows) prueba4=# explain analyze verbose select * from regla;                                                 QUERY PLAN                                                 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Seq Scan on public.regla  (cost=0.00..18.00 rows=800 width=72) (actual time=0.010..0.013 rows=2 loops=1)    Output: id, nombre  Total runtime: 0.050 ms (3 rows) EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 4/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 5. Recordemos.......... Análisis de Querys – Explain Los Explain siempre se deben leer de “adentro hacia afuera”. prueba4=# explain select * from factura_cab a  join factura_det b on a.id =b.fac_id;                                   QUERY PLAN                                   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Merge Join  (cost=260.93..525.73 rows=17120 width=29)    Merge Cond: (b.fac_id = a.id)    ­>  Sort  (cost=111.15..115.15 rows=1600 width=21)          Sort Key: b.fac_id          ­>  Seq Scan on factura_det b  (cost=0.00..26.00 rows=1600 width=21)    ­>  Sort  (cost=149.78..155.13 rows=2140 width=8)          Sort Key: a.id          ­>  Seq Scan on factura_cab a  (cost=0.00..31.40 rows=2140 width=8) (8 rows) El primer explain fue hecho sin hacer un VACUMM a las tablas, en el segundo se  procedió a ello, nótese las diferencia en las cifras, esto se debe a las estadísticas. prueba4=# explain select * from factura_cab a  join factura_det b on a.id =b.fac_id;                                QUERY PLAN                                 ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­  Hash Join  (cost=1.07..2.16 rows=4 width=25)    Hash Cond: (b.fac_id = a.id)    ­>  Seq Scan on factura_det b  (cost=0.00..1.04 rows=4 width=17)    ­>  Hash  (cost=1.03..1.03 rows=3 width=8)          ­>  Seq Scan on factura_cab a  (cost=0.00..1.03 rows=3 width=8) (5 rows) EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 5/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 6. Recordemos.......... Análisis de Querys – Explain Para determinar si un índice debe ser utilizado, PostgreSQL debe tener estadísticas  sobre la tabla. Estas estadísticas se recolectan mediante VACUUM ANALYZE, o  simplemente ANALYZE. Usando las estadísticas, el optimizador sabe cuántas son las  filas en la tabla, y puede determinar mejor si los índices deben utilizarse. Las  estadísticas son también valiosas en la determinación de un orden óptimo y métodos de  unión. La recolección de Estadísticas debe ser realiza periódicamente como el cambio  de contenido de la tabla. El costo: (cost=149.78..155.13 rows=2140 width=8) 149.78    <­­ costo inicial de traer la primera tupla 155.13    <­­ costo total estimado Rows=2140 <­­ filas escaneadas Width=8   <­­ filas de salida El costo total estimado se calcula sobre la siguiente formula  (disk pages read * seq_page_cost) + (rows scanned * cpu_tuple_cost) seq_page_cost  <­­ costo de acceso a las páginas de la data            (1.00 default) cpu_tuple_cost <­­ costo del proceso de cada fila durante la consultas (0.01 default) EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 6/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 7. Recordemos.......... Espiando lo que hacen los Querys. Para lograr esto debemos modificar el postgresql.conf y activar algunas opciones de debug que no están activas por defecto. log_error_verbosity = VERBOSE     #nivel de detalle si loggea algo log_min_error_statement = FATAL   #solo log de querys que son totalmente perjudiciales                                    para la dbms log_min_duration_statement = 1000 #log de aquellos querys que duran más de 1 segundo,                                    si ya se sabe que hay muchos así, entonces subir a                                    2000 o 5000 lo que sea más adecuado o se considere                                    demasiado tiempo debug_print_plan = On             #para que imprima el plan de ejecución de los querys                                    Largos debug_pretty_print = On           #para que imprima el log de los querys en un forma                                    adecuado, decente de leer log_lock_waits  = On              #para ver si tenemos problemas de bloqueos EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 7/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 8. El tema de los Vacuums.... Los bloqueos Lock Usado en Tiene problemas ACCESS SHARE Se ejecuta un Select sobre una tabla No ROW SHARE Se ejecuta un Select sobre una tabla Solo si hay un bloqueo exclusivo sobre la tabla ROW EXCLUSIVE Se ejecuta UPDATE / DELETE / Solo si hay un bloqueo exclusivo sobre la tabla o registro. + INSERT en una tabla SHARE SHARE UPDATE EXCLUSIVE por Vacuum, Analyze y creación de Con cualquier bloqueo exclusivo con el que concurra + SHARE índices SHARE creación/actualización de indices Con cualquier bloqueo exclusivo con el que concurra SHARE ROW EXCLUSIVE Se lanza manualmente Con cualquier bloqueo exclusivo con el que concurra + SHARE EXCLUSIVE Se lanza manualmente, solo permite Con todos los bloqueos excepto ACCESS SHARE ACCESS SHARE ACCESS EXCLUSIVE Cambios de estructura de la tabla, Con todos los bloqueos (debe esperar a que terminen) Vacuum Full y procesos de regeneración de índices EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 8/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 9. Pero hay más..... Administración – Procesos a)TOP y HTOP TOP es un comando convencional de Linux / Unix que nos permite ver los procesos que se  ejecutan en el servidor. Los procesos ejecutados por PostgreSQL son normalmente ejecutados por los usuarios  “postgres”, “pgsql” ó “postmaster”. ernesto@depeche:~/aaa$ ps aux | egrep postgres postgres   961  0.0  0.1 101580  2228 ?        S    Oct08   0:06 /usr/lib/postgresql/8.4/bin/postgres ­D  /var/lib/postgresql/8.4/main ­c config_file=/etc/postgresql/8.4/main/postgresql.conf postgres   989  0.0  0.3 101704  6208 ?        Ss   Oct08   0:11 postgres: writer process                                 postgres   990  0.0  0.0 101580   568 ?        Ss   Oct08   0:08 postgres: wal writer process                             postgres   991  0.0  0.0 102380  1320 ?        Ss   Oct08   0:09 postgres: autovacuum launcher process                    postgres   992  0.0  0.0  73704   848 ?        Ss   Oct08   0:17 postgres: stats collector process                        Recuerde que PostgreSQL maneja un procesador por conexión, si tiene varios  procesadores un proceso lanzado no usará varios procesadores, solo uno, deja los otros  disponibles para otras conexiones que lanzan sus propios procesos, la ventaja del uso  de esta funcionalidad se complementa con la capacidad de administración de usuarios  concurrentes que tenga el sistema operativo que se está usando (que soporte SMP). Nunca mate un proceso que demora mucho  EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 9/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 10. Pero hay más..... Administración – Procesos b)PG_TOP http://ptop.projects.postgresql.org/ El paquete instalador en Ubuntu es PTOP e instala la aplicación pg_top. ernesto@depeche:~/aaa$ pg_top ­­help pg_top: invalid option ­­ '­' pg_top version 3.6.2 Usage: pg_top [­ITWbcinqu] [­x x] [­s x] [­o field] [­z username]           [­p PORT] [­U USER] [­d DBNAME] [­h HOSTNAME] [number] ernesto@depeche:~/aaa$ pg_top ­U dbadmin ­d prueba5 En una consola: prueba5=# begin; prueba5=# lock alumnos in exclusive mode; En otra Consola: prueba5=# insert into alumnos values(5,'chicho',12,'nada'); Pg­Top nos muestra: ast pid: 29499;  load avg:  1.59,  1.59,  1.69;       up 1+03:48:24                                                       3 processes: 3 sleeping CPU states: 47.0% user,  2.6% nice,  8.8% system, 40.5% idle,  1.1% iowait Memory: 1920M used, 81M free, 26M buffers, 659M cached Swap: 375M used, 1532M free, 45M cached   PID USERNAME PRI NICE  SIZE   RES STATE   TIME   WCPU    CPU COMMAND 29500 postgres  20    0  102M 4232K sleep   0:00  0.02%  0.20% postgres: dbadmin prueba5 [local] idle                     29215 postgres  20    0  102M 5048K sleep   0:00  0.00%  0.00% postgres: dbadmin prueba5 [local] idle in transaction      29396 postgres  20    0  102M 3628K sleep   0:00  0.00%  0.00% postgres: dbadmin prueba5 [local] INSERT waiting    EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 10/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 11. Pero hay más..... Administración – Procesos b)PG_TOP A     <­­ permite ver el plan de ejecución de un query, especifique el PID del proceso C     <­­ activa/desactiva color c     <­­ permite ver la linea de comandos completa D     <­­ cambia página de listado h ó ? <­­ help E     <­­ ver versión actualizada del plan de ejecución e     <­­ permite ver errores del sistema I     <­­ ver/no ver procesos en espera o durmiendo K     <­­ mata un proceso, indicar el pid L     <­­ permite ver los locs del proceso, especificar el pid M     <­­ ordena por uso de memoria N     <­­ ordena por número de proceso n ó # <­­indica cuantos procesos se pueden ver, máximo 65 O     <­­ cambia el orden de muestra dependiendo un parámetro especial ("cpu", "res", "size", "time",           "seq_scan", "seq_tup_read",  "idx_scan",  "idx_tup_fetch",  "n_tup_ins","n_tup_upd", "n_tup_del") P     <­­ ordena por utilización del proceso Q     <­­ muestra el query, especificar el pid q     <­­ Quit R     <­­ Display user table statistics. r     <­­ ?? s     <­­ cambia la cantidad de segundos de refresco de la pantalla T     <­­ ordena por tiempo de ejecución T     <­­ ?? U     <­­ muestra los procesos de un usuario, ingresar el usuario  X     <­­ muestra las estadísticas de los índices EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 11/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 12. El tema de los Vacuums.... Vacuum El Vacuum es una de las más importantes tareas de administración, lo que hace es  limpiar las “páginas” no usadas por el sistema y actualiza las estadísticas de las  tablas e índices para una mejor resolución de querys. La dbms ejecuta periodicamente (definido en postgresql.conf) un Lazy Vacuum, esto es  libera páginas no usadas por data, más no por índice, este vacuum no genera demasiado  tiempo de bloqueo en la tabla (depende el tamaño). EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 12/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 13. El tema de los Vacuums.... Vacuum El full vacuum requiere acceso exclusivo a la tabla durante el tiempo que demoré la  operación, esta limpiara totalmente las páginas no usadas. Mejora notablemente el tiempo de acceso a los datos. EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 13/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 14. El tema de los Vacuums.... Vacuum Se pueden aplicar Vaccums a nivel de tabla o base de datos. ●Vacuum full TABLA    <­­ limpia todo el espacio no utilizado, reescribe totalmente la                          tabla por lo cual consume más espacio. ●Vacuum analyze TABLA <­­ actualiza las estadísticas para e generador de plan de                          ejecución. ●Vacuum TABLA         <­­ solo limpia data y reorganiza las páginas. Se puede añadir de precisión un Vacuum sobre un campo. “Vacuumdb” se utiliza externamente desde la linea de comandos del sistema operativo  para ejecutar la operación sobre la base de datos seleccionada. ernesto@depeche:~$ vacuumdb ­­full prueba5 ­U dbadmin     EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 14/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 15. El tema de los Vacuums.... Vacuum El Vacuum es bueno, es importante ..... pero ...... imaginen un entorno de alta concurrencia y que el vacuum se lance en un momento de alta carga. EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 15/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 16. El tema de los Vacuums.... Vacuum Tenemos que modificar el postgresql.conf nuevamente. autovacuum_naptime indica el periodo de tiempo en los cuales verificará si las tablas de una db necesitan ejecutar un autovacuum, no indica o fuerza un vacuum. autovacuum_vacuum_threshold y autovacuum_analyze_threshold indica la cantidad de TUPLAS que deben ser modificadas para justificar que se realice un VACUUM y un ANALYZE, una TUPLA no es igual a una página ni a un registro es una unidad que puede tener información de data, estructuras o índices. autovacuum_vacuum_scale_factor y autovacuum_analyze_scale_factor indica el porcentaje del total de registros en una tabla que debe ser modificado antes de que se lance un VACUUM o un ANALYZE, por defecto el valor de VACUUM es 0.2 eso significa 20% y en ANALYZE es 0.1 que es 10%, en otras palabras, si tenemos una tabla de 100,000 registros y cambiamos 12,000 entonces se ejecutará un ANALYZE pero no un VACUUM, cuando se modifiquen 20,001 registros entonces se lanzará el VACUUM. autovacuum_freeze_max_age es solo una medida de seguridad, el AUTOVACUUM el PostgreSQL lo lanza automáticamente por seguridad, por defecto sucederá cada 200millones de transacciones. EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 16/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 17. El tema de los Vacuums.... Vacuum Tenemos que modificar el postgresql.conf nuevamente. autovacuum_vacuum_cost_limit, el COST_LIMIT es el “COSTO” de operaciones máximo que ejecutará la base de datos durante un AUTOVACUUM antes de pararse y esperar un determinado tiempo, especificado por autovacuum_vacuum_cost_delay y continuar. Como el proceso de VACUUM genera mucho estrés en la DB esto bloquea eventualmente las tablas, como los VACUUM y AUTOVACUUM se lanzan en caliente (osea sin impedir que los usuarios puedan seguir trabajando con la base de datos) es necesario indicarle a la DB cuanto tiempo puede trabajar en estás tareas. El COSTO no es fácil de calcular, por ejemplo: buscar y acceder a una página vale 1 leer la página vale 10 manipular y limpiar una página vacía 20 COSTO TOTAL 31 EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 17/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
  • 18. El tema de los Vacuums.... GRACIAS POR SU ATENCION EQ Soft Consultoría y Soporte E.I.R.L. PgDay 2012 Http://www.eqsoft.net 18/18 informes@eqsoft.net Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957