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.
Related posts: