Me pueden resolver un conflicto??
Publicado por Jonatan (1 intervención) el 04/08/2009 14:45:05
Hola y gracias de antemano por vuestras posibles respuestas.
tengo un problema con el siguiente pl:
SELECT
DISTINCT( VISTA.REFERENCIA_LIBRO)
, VISTA.TITULO
, VISTA.AUTOR
, null as tema
, null as medio
, null as municipo
, null as localidad
, null as comarca
, null as provincia
, null as texto_libre
, null as referencia_libro
, null as ano_publicacion
, null as editorial
, null as extracto
FROM
ENTO_V_LIBRO_AUTORES VISTA
where
/* ******* parte 1 ********** */
EXISTS (SELECT 'x'
FROM ETN_AMBITOS
WHERE ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ( ETN_AMBITOS.CODIGO_PROVINCIA IS NULL
OR ETN_AMBITOS.CODIGO_PROVINCIA=''
OR ETN_AMBITOS.CODIGO_PROVINCIA='00'
OR ETN_AMBITOS.CODIGO_PROVINCIA= '44')
)
/* ******* parte 2 ********** */
AND EXISTS ( SELECT 'x'
FROM ETN_AMBITOS , IAE.CES_MUNICIPIOS
WHERE ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ETN_AMBITOS.CODIGO_MUNICIPIO=IAE.CES_MUNICIPIOS.CODIGO_MUNICIPIO
AND ETN_AMBITOS.CODIGO_PROVINCIA=IAE.CES_MUNICIPIOS.CODIGO_PROVINCIA
AND UPPER(IAE.CES_MUNICIPIOS.NOMBRE_MUNICIPIO) LIKE UPPER('%teruel%')
)
/* ******* parte 3 ********** */
AND EXISTS (
SELECT 'x'
FROM
ETN_AMBITOS
, IAE.CES_LOCALIDADES
WHERE
ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ETN_AMBITOS.CODIGO_LOCALIDAD=IAE.CES_LOCALIDADES.CODIGO_LOCALIDAD
AND ETN_AMBITOS.CODIGO_MUNICIPIO=IAE.CES_LOCALIDADES.CODIGO_MUNICIPIO
AND ETN_AMBITOS.CODIGO_PROVINCIA=IAE.CES_LOCALIDADES.CODIGO_PROVINCIA
AND UPPER(IAE.CES_LOCALIDADES.NOMBRE_LOCALIDAD) LIKE UPPER('%teruel%')
)
mi duda es que no se porque si lo ejecuto completo o solo cualquiera de las 3 partes, tanda muy poco en hacer la consulta (1s o asi), pero si la ejecuto por pares (osea la parte 1 y 2, parte 2 y 3, parte 1 y 3 ...) ¡tarda 2 minutos! en sacar resultado.
aclaro que el pl segun si recibe unos parametros u otros construye la sql con mas o menos partes.
espero que alguin me resuelva la duda y asi poder corregir lo que sea para que sea siempre rapida.
tengo un problema con el siguiente pl:
SELECT
DISTINCT( VISTA.REFERENCIA_LIBRO)
, VISTA.TITULO
, VISTA.AUTOR
, null as tema
, null as medio
, null as municipo
, null as localidad
, null as comarca
, null as provincia
, null as texto_libre
, null as referencia_libro
, null as ano_publicacion
, null as editorial
, null as extracto
FROM
ENTO_V_LIBRO_AUTORES VISTA
where
/* ******* parte 1 ********** */
EXISTS (SELECT 'x'
FROM ETN_AMBITOS
WHERE ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ( ETN_AMBITOS.CODIGO_PROVINCIA IS NULL
OR ETN_AMBITOS.CODIGO_PROVINCIA=''
OR ETN_AMBITOS.CODIGO_PROVINCIA='00'
OR ETN_AMBITOS.CODIGO_PROVINCIA= '44')
)
/* ******* parte 2 ********** */
AND EXISTS ( SELECT 'x'
FROM ETN_AMBITOS , IAE.CES_MUNICIPIOS
WHERE ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ETN_AMBITOS.CODIGO_MUNICIPIO=IAE.CES_MUNICIPIOS.CODIGO_MUNICIPIO
AND ETN_AMBITOS.CODIGO_PROVINCIA=IAE.CES_MUNICIPIOS.CODIGO_PROVINCIA
AND UPPER(IAE.CES_MUNICIPIOS.NOMBRE_MUNICIPIO) LIKE UPPER('%teruel%')
)
/* ******* parte 3 ********** */
AND EXISTS (
SELECT 'x'
FROM
ETN_AMBITOS
, IAE.CES_LOCALIDADES
WHERE
ETN_AMBITOS.REFERENCIA_LIBRO=VISTA.REFERENCIA_LIBRO
AND ETN_AMBITOS.CODIGO_LOCALIDAD=IAE.CES_LOCALIDADES.CODIGO_LOCALIDAD
AND ETN_AMBITOS.CODIGO_MUNICIPIO=IAE.CES_LOCALIDADES.CODIGO_MUNICIPIO
AND ETN_AMBITOS.CODIGO_PROVINCIA=IAE.CES_LOCALIDADES.CODIGO_PROVINCIA
AND UPPER(IAE.CES_LOCALIDADES.NOMBRE_LOCALIDAD) LIKE UPPER('%teruel%')
)
mi duda es que no se porque si lo ejecuto completo o solo cualquiera de las 3 partes, tanda muy poco en hacer la consulta (1s o asi), pero si la ejecuto por pares (osea la parte 1 y 2, parte 2 y 3, parte 1 y 3 ...) ¡tarda 2 minutos! en sacar resultado.
aclaro que el pl segun si recibe unos parametros u otros construye la sql con mas o menos partes.
espero que alguin me resuelva la duda y asi poder corregir lo que sea para que sea siempre rapida.
Valora esta pregunta


0