Muy buenas! tengo un problema con unas consultas que al ejecutarlas tarda bastante en mostrar el resultado . Algunas de esas columnas tienen sus indices asignados. Pruebo a hacer la consulta de tres modos diferentes pero funciona de igual lentitud.
select "msisdn", "status", "optin_date", "optout_date", (trunc("optout_date")-trunc("optin_date")) as "life" from "subscriber" where "status" = 0 union all select "msisdn", "status", "optin_date", "optout_date", (trunc(sysdate)-trunc("optin_date")) as "life" from "subscriber" where "status" = 1; select "msisdn", "status", "optin_date", "optout_date", case "status" when 0 then (trunc("optout_date")-trunc("optin_date")) when 1 then (trunc(sysdate)-trunc("optin_date")) end as "life" from "subscriber"; select "msisdn", "status", "optin_date", "optout_date", decode ("status", 0 , (trunc("optout_date")-trunc("optin_date")) , 1 , (trunc(sysdate)-trunc("optin_date")) ) as "life" from "subscriber"; esta es la tabla (subscriber): Name Null? Type ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- id NOT NULL NUMBER(11) id_user NOT NULL NUMBER(11) id_service NOT NULL NUMBER(11) msisdn NOT NULL NUMBER(20) nextbill NOT NULL DATE credits NOT NULL NUMBER(11) failed_trys NOT NULL NUMBER(11) last_attempt DATE status NOT NULL NUMBER(4) optin_date NOT NULL DATE optout_date DATE id_source NOT NULL NUMBER(11) id_campaign NOT NULL NUMBER(20) id_campaign_detail_promo_sms NOT NULL NUMBER(20) alguien que pueda dar algún consejo de optimizacion ?? gracias!!- Inicie sesión para enviar comentarios
Qué raro que te tarde en
Subido por Carlos el 15 May, 2013 - 23:16
Qué raro que te tarde en responder, a primera vista en estas consultas no veo nada especial para ralentizar nada. Tiene que ser algo relacionado con la tabla, o un tema externo. La tabla es muy grande? Has probado a ejecutar la consulta directamente desde SQLPlus?
Como 'status' tiene pocos valores, lo único que se me ocurre que puedes probar es crear un índice de tipo bitmap sobre este campo, aunque seguramente terminarás antes haciendo un explain plain sobre la consulta para detectar qué paso puede estar consumiendo más tiempo.
La tabla tendra como unas
Subido por mariomario89 el 20 May, 2013 - 09:19
En respuesta a Qué raro que te tarde en por Carlos
La tabla tendra como unas 6000 filas pero si lo ejecuto desd SQL * plus me va bastante rapido ... solo es si lo ejecuto desde SQL developer
Pues ya puedes olvidarte de
Subido por Carlos el 20 May, 2013 - 17:06
En respuesta a La tabla tendra como unas por mariomario89
Pues ya puedes olvidarte de optimizar la query, con 6.000 filas esa consulta no puede tardar prácticamente nada. Puedes tener algún problema específico con la herramienta SQL Developer, aparte que ya de por sí este IDE no es especialmente rápido, algunos entornos desarrollados en JAVA tienen estos problemas ;)
Compara con otras consultas hechas con SQL Developer, a ver si encuentras diferencia, pero si lanzas la consulta desde un script o desde un programa seguro que no vas a tener problemas de rendimiento.