PROBLEMAS CON VISTAS Y PACKAGE

UN LEGO
19 de Septiembre del 2005
EN MI BD AL REALIZAR UNA SELECT A UNA VISTA FORMADA POR UN CONJUNTO DE TABLAS, ESTA VISTA FILTRA LA INFORMACION POR MEDIO DE UNA VARIABLE DE SESION ALMACENADA EN UN PACKAGE,.
AL HACER EL SELECT SE RELENTIZA MUCHO LA BUSQUEDA HACIENDO USO DEL PACKGE.
¿ EXISTE ALGUNA FORMA DE QUE VAYA MAS RAPIDO?

SELECT *
FROM A,B
WHERE
A.A1=B.CODIGO_DE_A AND
B.VALOR=PAQUETE.DEVUELVE_VALOR

DE ESTE MODO LA CONSULTA PUEDER TARDAR COMO 100VECES MAS QUE SI LE DIESE UN VALOR DIRECTO ES DECIR

SELECT *
FROM A,B
WHERE
A.A1=B.CODIGO_DE_A AND
B.VALOR='100';


LA FUNCION DEL PACKAGE ES ESTA
FUNCTION DEVUELVE_VALOR
RETURN VARCHAR2
IS
X VARCHAR2;
BEGIN
X:=PACKAGE.VARIRABLE_VALOR;
END;

MUCHAS GRACIAS DE ANTEMANO

felix
19 de Septiembre del 2005
Creale Indices a las Tablas que utilizas en el query que forma la vista
con esto se agiliza tus consultas

Ejemplo:
SELECT *
FROM A,B
WHERE
A.A1=B.CODIGO_DE_A AND
B.VALOR=PAQUETE.DEVUELVE_VALOR
el indice se crea para la tabla B para los campos (Codigo_de_a y Valor)

El query debe ser asi

SELECT *
FROM A,B
WHERE
B.CODIGO_DE_A = A.A1 And
B.VALOR=PAQUETE.DEVUELVE_VALOR


Ok, espero te sirva