Performance en Oracle. Utilizar un índice distinto al del optimizador

6 10 2008

Hay veces en las que al ejecutar una consulta el optimizador de la base de datos Oracle utiliza índices creados por el propio optimizador.

Supongamos que queremos ejecutar la consulta:

SELECT *
FROM empleados
WHERE nombre='Varetti'
AND tipo_empleado='B'

Supongamos, además, que el optimizador creó un índice para tipo_empleado. Para evitar que al ejecutar la consulta utilice dicho índice índice podemos añadir !!” en la sentencia SELECT de la siguiente forma:

SELECT *
FROM empleados
WHERE nombre='Varetti'
AND tipo_empleado!!''='B'

De esta forma, el optimizador no cogerá el índice asociado a tipo_empleado.

Otra manera de hacerlo es indicando al optimizador el índice que nosotros queremos utilizar en la ejecución de nuestra consulta SELECT a través de un hint:

SELECT * /*+ INDEX(empleados inx_empl_nombre) */
FROM empleados
WHERE nombre='Varetti'
AND tipo_empleado='B'

En este caso, aunque exista un índice para tipo_empleado, estaremos indicándole al optimizador que queremos que utilice el índice de la tabla empleados cuyo identificador es inx_empl_nombre





Crear una vista materializada en Oracle

6 10 2008

Las vistas materializadas son vistas que, además de guardar la definición de la vista, almacenan los registros resultantes de la ejecución de la consulta Select definida por la vista.

Son muy útiles en los casos en que la vista tarda mucho en ejecutarse y la frecuencia de modificación de los datos en baja.

La sintaxis de creación de una vista materializada en Oracle es:

CREATE MATERIALIZED VIEW nombre_vista
[TABLESPACE nombre_ts]
[PARALELL (DEGREE n)]
[BUILD {INMEDIATE|DEFERRED}] --defecto: INMEDIATE
[REFRESH {FAST|COMPLETE|FORCE|NEVER|ON COMMIT}] --defecto: FORCE
[{ENABLE|DISABLE} QUERY REWRITE] --defecto: DISABLE
AS SELECT ... aquí va la select asociada a la vista 




Mostrar el nombre de la base de datos en Oracle

3 10 2008

Para mostrar el nombre de la base de datos en Oracle hay que ejecutar la siguiente consulta sobre la vista v$system_parameter del catálogo:

select value from v$system_parameter
where name = 'db_name'




Mostrar el nombre y la ubicación del fichero SPFILE en Oracle

27 09 2008

Para conocer la ubicación y el nombre del fichero SPFILE en Oracle hay que ejecutar la siguiente consulta sobre la vista v$system_parameter del catálogo:

select value from v$system_parameter
where name = 'spfile'




Mostrar los parámetros de una base de datos Oracle

27 09 2008

Para mostrar los parámetros de una base de datos Oracle hay que realizar una consulta sobre la vista v$system_parameter del catálogo:

select * from v$system_parameter