miércoles, 27 de febrero de 2019

Oracle 19c - Automatic Indexing


Auto Indexing es un sistema experto que emula el trabajo que un especialista en performance realiza normalmente en una base de datos. El mismo supervisa la carga de trabajo en la base de datos y determina si hay algún índice que pueda ayudar a mejorarla.

A diferencia de los asesores de índices ya existentes en versiones anteriores de Oracle, el indexado automática no se limita a recomendaciones sino que valida las mismas (construye los índices y prueba las sentencias que se verían afectadas), e identifica sentencias que pueden ser perjudicadas por la existencia del nuevo índice, generando un SQL Plan Baseline para evitar que el nuevo índice afecte a la sentencia.


Este es un proceso iterativo, el cual se ejecuta de manera periódica y posee mecanismos de aprendizaje que mejoran el proceso de recomendación de índices. Asimismo, para evitar mantener indices innecesarios, aquellos índices generados por en indexado automático que ya no son útiles son eliminados por el mismo proceso, reduciendo la sobrecarga generada por indices innecesario al ejecutar sentencias de DML sobre las tablas afectadas.

La configuración y administración de esta funcionalidad se hace mediante el nuevo paquete DBMS_AUTO_INDEX.

Activando o Desactivando Autimatic Indexing

Es posible activar esta nueva funcionalidad de dos formas, ya sea en modo Implement (que genera los indices y los deja visibles) o en modo Reports (donde los índices quedan en modo invisible y no son utilizados por las sentencias):

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','REPORT ONLY');

Para deshabilitar la funcion, tambien se usa el paquete DBMS_AUTO_INDEX:

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

Para ver mas detalles sobre la configuración y mas opciones de esta nueva característica, se puede consultar la documentación oficial.

martes, 26 de febrero de 2019

Oracle 19c - LISTAGG con opción DISTINCT


La versión 19c de la base de datos Oracle incluye una interesante mejora a la función LISTAGG, largamente solicitada y esperado por los desarrolladores.

La versión 12.2 ya introdujo algunas mejoras realmente interesantes, las cuales ya compartí en este articulo Oracle 12c R2 - LISTAGG y OVERFLOW.

Ahora es posible eliminar los valores repetidos utilizando la opción DISTINCT. Veamos el siguiente ejemplo (tomado del blog de Connor McDonald):

SELECT deptno,
       listagg(job,',') WITHIN GROUP ( ORDER BY job) AS jobs
FROM scott.emp
GROUP BY deptno
ORDER BY 1;
 
   DEPTNO JOBS
--------- --------------------------------------------------
       10 CLERK,MANAGER,PRESIDENT
       20 ANALYST,ANALYST,CLERK,CLERK,MANAGER
       30 CLERK,MANAGER,SALESMAN,SALESMAN,SALESMAN,SALESMAN

Ahora es muy sencillo eliminar los valores duplicados simplemente utilizando la opción DISTINCT:

SELECT deptno,
       listagg(distinct job,',') WITHIN GROUP ( ORDER BY job) AS jobs
FROM scott.emp
GROUP BY deptno
ORDER BY 1;
 
   DEPTNO JOBS
--------- --------------------------------------------------
       10 CLERK,MANAGER,PRESIDENT
       20 ANALYST,CLERK,MANAGER
       30 CLERK,MANAGER,SALESMAN

Si quieren probarlo ustedes mismo, nada mejor que los ejemplos disponibles en Oracle Live SQL (entorno de base de datos gratuito en la nube provisto por Oracle).

También es útil revisar la sintaxis completa de la función LISTAGG en la documentación de Oracle 19c.


jueves, 21 de febrero de 2019

Oracle 18c XE disponible para Windows


Después de varios meses de espera, Oracle liberó la nueva versión de su base de datos Oracle 18c XE (eXpress Edition) para sistemas operativos Windows.


Oracle 18c XE posee la mayoría de las características de la edición Enterprise, con algunas limitaciones:

  • Hasta 3 PDB (Plugabble Databases)
  • 2 CPU para procesamiento
  • 2 GB de RAM (PGA+ SGA combinadas)
  • 12G GB de almacenamiento de datos de usuarios (puede usarse compresión)


La misma es ideal para entornos de desarrollo y para pequeñas implementaciones productivas que no deseen afrontar los costos de licenciamiento de las versiones con soporte.

La versión puede ser descargada aquí.

Información Adicional:

sábado, 16 de febrero de 2019

Oracle ACE Program

Hace un par de días recibí la confirmación de mi inclusión dentro del programa Oracle ACE como Oracle ACE Associate, el primer nivel dentro del mismo.


El programa busca el reconocimiento de individuos que han demostrado habilidades técnicas y fuertes credenciales como entusiastas dentro de la comunidad global de Oracle. Cualquier persona en comunidades de tecnologías Oracle y Aplicaciones es elegible para postularse o ser postulado a uno de los siguientes niveles: Oracle ACE Associate, Oracle ACE, o Oracle ACE Director.

Este es mi primer paso dentro del programa, reconociendo mi participación en AROUG (grupo de usuarios Oracle de Argentina), la participación en la comunidad online de Oracle y la difusión de noticias y artículos técnicos en este blog. Es a la vez un orgullo y una responsabilidad enorme el ser parte del programa, por lo que espero poder estar a la altura de lo requerido y generar mas y mejor contenido.


miércoles, 13 de febrero de 2019

Oracle 19c (19.2) ya está disponible on-premise para Oracle Exadata


La versión 19c de Oracle Database ya se puede descargar para servidores Oracle Exadata desde el sitio Software Delivery Cloud (eDelivery) de Oracle.

Esta nueva versión incorpora algunas nuevas características (sobre las cuales estaré escribiendo pronto) como ser:
  • Automatic Indexing
  • Active Standby DML Redirect
  • Hybrid Partitioned Tables
  • JSON Enhancements
  • Quarantine SQL Statements
  • Real Time Statistics

Se puede consultar la nueva Guía de características de Oracle Database (desarrollada en Oracle APEX) para ver las principales características disponibles a partir de Oracle 11g (11.2) incluyendo esta nueva versión.

Una introducción rápida a las nuevas características esta disponible en la documentación oficial.



DML Redirect Image