Optimizacion de vistas

Ryo-Kowaii
04 de Agosto del 2004
Sé que este problema es el problema de toda la vida, pero alguien me daria algunos tips para optimizar los tiempos de respuesta de los SQL en general en oracle? Estamos manejando tablas con 60.000, 35.000 y otra con alrededor de 415.000 registros y las vistas que hacen joins entre ellas, por ejemplo, tardan excesivamente (minutos), Esto se vuelve critico en un sistema de gestion por Internet como el nuestro.

cualquier ayuda es bienvenida.

Pd. El servidor de base de datos tiene una buena capacidad de procesamiendo asi como memoria suficiente.

vmarquez
04 de Agosto del 2004
REVISA EL PLAN DE EJECUCION, POR EJEMPLO USA EN SQL*PLUS

ALTER SESSION SET SQL_TRACE=TRUE

POR CADA CONSULTA QUE EJECUTA A&ANE

EXPLAIN PLAN FOR 'CONSULTA'

EJECUTADA LA CONSULTA REVISA EL PLAN_TALBLE

SELECT LPAD('", 2*LEVEL) || OPERATION || ' ' || OPTIONS || ' ' || OBJECT_NAME
FROM PLAN_TABLE
CONNECT BY PRIOR ID = PARENT_ID
START WITCH ID = 1

CON ESTE RESULTADO PUEDE VER COMO ACTUANS LOS JOINS INDICES, FULL, SCAN, ETC. AFINA AQUI TU CONSULTA INDICES, COIDCIONES JOIN, TABLAS POSTE, ETC..

Rodolfo Reyes
04 de Agosto del 2004
En el enterprise manager, puedes utilizar el Explain Plan, para ver la forma en como resuelve los JOIN en Oracle. Esto te puede dar una idea de si las busquedas las esta haciendo con indices o esta haciendo un barrido total de la tabla.

Documentación para entender el Explain Plan

http://www.orape.net/html/index.php

En la parte de "DESCARGAR MATERIAL PARA USUARIOS" escribe "Explain Plan". Esto te devuelve un par de manuales que creo que te ayudaran.


Ryo-Kowaii
04 de Agosto del 2004
Gracias por la ayuda, voy a revisarlo.