SQL Performance Analyzer Oracle Database

En ocasiones después de hacer un cambio sobre la configuración de una BD, ya sea memoria asignada, versión del optimizador, etc… es necesario obtener una evidencia que demuestre que lo que se ha hecho mejora o no el rendimiento.

SQL Performance Analyzer ( SPA ) un paquete que aparece por primera vez en la versión 11g. Básicamente lo que hace es utilizar un SQL Tuning Set y realizar un test de todas las operaciones incluidas en el mismo calculando:

  • Planes de ejecución
  • Tiempos de CPU

La documentación oficial está aqui.

Partimos de un SQL Tuning Set (STS) creado en la entrada SQL Tuning Set Oracle Database llamado sh_workload
Continue reading

SQL Access Advisor Oracle Database

Una vez más cuando tenemos problemas de rendimiento cualquier ayuda es poca, Oracle Database ofrece el SQL Access Advisor que nos ayudará ofreciendo recomendaciones para mejora el rendimiento del entorno, indices nuevos, planes de ejecución, etc..  de un SQL Tuning Set (entre otras posibles entradas)

En esta entrada vamos a ver como utilizar el SQL Access Advisor (SAA), que ofrecerá recomendaciones del tipo:

  • Particionado de tablas
  • Creación de índices
  • Creación de vistas materializadas
  • Generación de estadisticas.

Que podemos aplicar para mejorar el rendimiento de la BD.

La documentación oficial está aqui.

Partimos de un SQL Tuning Set (STS) creado en la entrada SQL Tuning Set Oracle Database.
Continue reading

SQL Tuning Advisor Oracle Database

Cuando tenemos problemas de rendiemiento cualquier ayuda es poca, Oracle Database ofrece el SQL Tuning Advisor  (STA) que nos ayudará ofreciendo recomendaciones para mejora el rendimiento del entorno, indices nuevos, planes de ejecución, etc..  de un SQL Tuning Set (entre otras posibles entradas)

En esta entrada vamos a ver como utilizar el SQL Tuning Advisor, que ofrecerá recomendaciones que podemos aplicar para mejorar el rendimiento de la BD.

La documentación oficial está aqui.

Partimos de un SQL Tuning Set (STS) creado en la entrada SQL Tuning Set Oracle Database.

Continue reading

SQL Tuning Set Oracle Database

En esta entrada vamos a ver como crear un SQL Tuning Set (STS) que posteriormente podemos utilizarlo de diversas formas.

Un SQL Tuning Set (STS), es un conjunto de operaciones sobre la BD que puede ser creado desde el caché, desde snapshost, SQLID…

Una vez tenemos definido el SQL Tuning Set (STS), podemos utilizarlo con:

  • SQL Tuning Advisor
    Obtiene recomendaciones para mejora el rendimiento del entorno, indices nuevos planes, etc..  de un sqlset (entre otras posibles entradas)
  • SQL Performance Analyzer
    Obtiene los planes de ejecución y tiempos, etc… de un sqlset (entre otras posibles entradas), se pueden comparar diferentes tasks, habiendo realizado cambios de parametrización de la BD, estructuras, etc…
  • SQL Access Advisor
    Obtiene recomendaciones de vistas materializadas o índices para mejorar el rendimiento.
  • Transportarlo a otra base de datos, para utlizarlo con los 3 paquetes anteriores en un entorno diferente.

Continue reading

Generar carga de trabajo en Oracle Database

Cuando generamos entornos de laboratorio o pruebas y que requieren actividad a nivel de BD, el primer obstáculo que nos encontramos es ¿como genero actividad?

Pues bien, tenemos una utilidad que es una marvilla para generar carga: http://dominicgiles.com/swingbench.html

Esta utilidad s epuede ejecutar en Windows o Linux y en la versión 2.5 (que es la que se ha utilizado al escribir esto), requiere Java 1.8.

Continue reading

Oracle espacio ocupado por tabla y objetos relacionados

En ocasiones debemos obtener un detalle suficiente del espacio ocupado por un tabla de la BD y sus objetos relacionados.Database_Icon_256

Para conocer el espacio ocupado por una tabla debemos acceder básicamente a:

  • dba_indexes, para obtener los nombres de los índices relacionados con la tabla.
  • dba_logs, aquí podemos conocer si existe algún segmento de tipo lob relacionado con la tabla.
  • dba_segments, finalmente obtenemos cada uno de los tamaños utilizando los datos anteriores

Por ejemplo, la tabla SCOTT.TABLE_TEST, la consulta sobre dba_indexes:

Continue reading

Redimensionar disco linux, discos no gestionados por LVM

hd

Disc partitions

En ocasiones debemos redimensionar discos simples, los discos gestionados mediante LVM son mucho más sencillos de redimensionar. Pero en esta caso no contamos con ellos, vamos a proceder a un redimendionado sin pérdida de datos.

 

El escenario inicial es este:

Source   
[root@oradb ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_oradb-lv_root
                       37G  6.7G   30G  19% /
tmpfs                 1.9G  224K  1.9G   1% /dev/shm
/dev/sda1             485M   34M  426M   8% /boot
/dev/sdb1            1004M   19M  935M   2% /mnt
 
[root@oradb ~]# parted /dev/sdb unit s print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4194304s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 
Number  Start  End       Size      Type     File system  Flags
 1      63s    2088449s  2088387s  primary  ext4
 
[root@oradb ~]# ls /mnt/ | wc -l
118

Es decir tenemos un HD /dev/sdb de 2GB (4194304 sectores*512 bytes), en estos momentos solo existe una partición de 1GB (2088387 sectores*512 bytes=1GB aproximadamente), que está montada y contiene 118 ficheros/directorios.

Continue reading

linux bonding, red alta disponibilidad (HA) en Linux (Red Hat/CentOS)

En los entornos de producción es habitual encontrarse los caminos de red redundados, es decir 2 o más tarjetas de red trabajando juntas.

La idea es que cada tarjeta de red va conectada un switch diferente, de esta forma tenemos tolerancia a fallos de las tarjetas de red y la electrónica de red que hay detrás, generalmente un switch.bonding linux

Vamos a ver como configurar un interfaz de tipo bond en Red Hat/CentOS. Para documentar el procedimiento he utilizado concretamente CentOS 6.4.

La situación inicial en cuanto a configuración de red es:

 

Source   
[root@oradb ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:25:4C:B6
inet addr:192.168.174.100  Bcast:192.168.174.255  Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe25:4cb6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:217 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22757 (22.2 KiB)  TX bytes:2555 (2.4 KiB)
 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:F8:6B:64
inet addr:192.168.174.134  Bcast:192.168.174.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef8:6b64/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:196 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12570 (12.2 KiB)  TX bytes:1298 (1.2 KiB)
 
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)

 

Continue reading

yum exclude, evitar las actualizaciones de ciertos paquetes (Red Hat/CentOS)

Lo que más me gusta del mundo Linux es la facilidad de obtener software, los repositorios son una auténtica maravilla, simplifican cualquier instalación y sus dependencias.entrada yum.conf

El problema surge cuando queremos instalar algún paquete de software propietario, que es dependiente de algún paquete que tenemos instalado. La dependencia en muchos casos incluyen una versión concreta, esto entra en conflicto directo con la facilidad de actualizar software en Linux.

Vamos a ver como evitar la actualización de ciertos paquetes en Red Hat/CentOS, permitiendonos utilizar «yum» de forma segura con la tranquilidad de que no vamos a estropear nada en la siguiente actualización.

Continue reading

Instalar MongoDB Linux, una primera instalación sencilla

Instalar MongoDB en Linux es realmente sencillo.

MongoDB es un motor de BD noSQL, es una solución Big Data que merece una mención especial, en otra entrada veremos las diferencias conceptuales respecto a un motor SQL, pero hoy vamos a ver como arrancar una instalación básica y algunos conceptos iniciales.entrada mongodb instalación sencilla

Lo primero que vamos a hacer es obtener el software desde la URL:

https://www.mongodb.org/downloads

Seleccionamos el Sistema Operativo y descargamos, en este caso la instalación la haremos sobre CentOS 6.4 Linux.

Continue reading