4 TIPS DE ORACLE

by ryudice on October 8, 2009

Particionado de tablas

El particionada de tablas me permite a mi crear diferente particiones dentro de una tabla basadas, por ejemplo, en rangos, digamos que yo quiero que una tabla se particione por rangos de fechas, cada día  de datos dentro de mi tabla será una partición. Que ventaja nos trae? Mejora el rendimiento ya que si por ejemplo yo solo quiero accesar un día de información, solo se va leer ese día y no habrá que tener que recorrer el resto de la información. Esta técnica utilizada con otras practicas de buen diseño de base de datos como por ejemplo separar los data files de cada tablespace y luego separar cada data files en disco diferentes, puede mejorar el tiempo de consulta de cualquier tabla.

Índices de Bitmap

Los índices de bitmap están diseñados para emplearse en columnas con poca cardinalidad, si se emplean en columnas de alta cardinalidad puede que sean mas lento que un índice de árbol y seguramente quedara mucho mas gran que uno de árbol. Cuando digo poca cardinalidad me refiero a que un mismo valor en la columna se repite muchas veces, por ejemplo, yo tengo una columna que se llama Sexo, y solo puedo tener M o F, esta es una columna perfecta para un índice de bitmap porque la columna solo puede tener dos valores diferentes, es decir, tiene baja cardinalidad.

Otras consideraciones al crear índices de bitmap es que generalmente no conviene que sean compuestos, no deberían tener mas de una columna. También es conveniente crearlos como “local” si la tabla esta particionada.

Paralelismo

La edición Enterprise de Oracle permite ejecutar queries utilizando varios procesos paralelos, esto hacer que los queries se ejecuten mucho mas rápido, y la verdad se nota bastante la diferencia. Como funciona el paralelismo? Bueno pues lo que hacer Oracle es que crea varios hilos o “threads” y cada uno de estos hilos empieza a ejecutar el query simultáneamente, al final Oracle une todos los resultados. Tomen en cuenta que las tablas particionadas se benefician mas del paralelismo que una tabla no particionada. Como usarlo? Lo pueden usar a través del hint parallel de la siguiente forma:

SELECT /*+ parallel(empleados 16) */ *
FROM empleados

Explicación:

“empleados” es el nombre de la tabla en la que quiero ejecutar el paralelismo El numero 16 son el numero de threads o hilos que quiere correr simultáneamente, entre mas es mas rápido, pero tengan cuidado si le ponen mucho puede traer consecuencias no muy deseadas en el rendimiento de la base de datos. Vistas materializadas

El parallelismo tambien se puede usar para crear tablas mas rapido, por ejemplo:

CREATE TABLE empleados TABLESPACE ts_recursos_humanos PARALLEL( DEGREE 16) AS
SELECT * FROM planilla

Tomen en cuenta que al crear una tabla con la sentencia PARALLEL todas las consultas que se realicen a esa tabla por defecto serán paralelas, esto no siempre es conveniente ya que un DBA no querrá al usuario común y corriente ejecutando consultas paralelas en la base. Un caso en el que esto si seria conveniente es  si la tabla la consulta un sistema OLAP que usa la gerencia y los gerentes han pedido que los resultados se devuelvan mas rápido.

Vistas materializadas

Una vista materializada es como una tabla que se refresca automáticamente, o manualmente cada cierto tiempo, a diferencia de una vista normal, la cual se refresca cada ves que la consultan. Otra característica de las vistas materializadas es que estas si ocupan espacio, las vistas normales no, la ventaja de esto es que son mas rápidas que las vistas normales. Las vistas materializadas se utilizan mas que todo en datawarehouses, donde la información de actualiza en intervalos de dias o horas.

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Twitter

Related posts:

  1. Generar correlativo con un trigger en Oracle
  2. Seleccionar filas de una tabla aleatoriamente en oracle
  3. Como crear un indice en oracle increiblemente rapido
  4. Como saber el estado de una instancia de oracle

Leave a Comment

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

PensandoEnCodigo is Digg proof thanks to caching by WP Super Cache