Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 27-07-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola,

En este segundo procedimiento almacenado no tienes demasiadas consultas. Ejecútalas manualmente, y verás cual de ellas es la que se demora tanto.

Es decir en IBExpert (o el gestor que utilizes) lanza directamente :

select distinct (l.tipo)
from listado_servicios l
where tipo<>'INTERNACION'

Si se ejecuta rápido, te olvidas de ello y pasas a la siguiente consulta :

select distinct m.usuario
from listado_registro_servicios_amb (:f1, :f2, 'T') m
where (m.tipo_servicio=:tipo_servicio)

Hasta dar con la consulta que va lenta.

Supongamos que efectivamente resulta ser :

select coalesce(sum(case when m.costo is null then 0 else m.costo end),0) as monto_recibo
from listado_registro_servicios_amb (:f1,:f2,'T') m
where ((M.usuario=:USUARIO)AND(m.factura='RECIBO')and(m.tipo_servicio=:tipo_servicio))

Entonces tienes que optimizar la consulta, y para hacerlo se utilizan, como bien has dicho, índices.

Pero crear los índices no es simplemente hacer un índice para cada campo implicado. No, puesto que eso no le sirve al sistema para agilizar una consulta como la anterior.

En ese caso necesitas un índice múltiple, es decir un solo índice con los campos : usuario, factura, tipo_servicio

Si la consulta que te demora la ejecución del procedimiento almacenado resulta ser otra, simplemente dinos cual es y te ayudaremos a definir el índice adecuado para optimizarla.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Firebird, tarda mucho en conectar a base de datos en red sonjeux Conexión con bases de datos 1 09-04-2009 08:29:40
rewrite tarda si no hay red jonmendi OOP 0 25-09-2008 10:03:23
Ayuda Urgente, Por favor. Tarda mucho en traer los datos. Paradiso Firebird e Interbase 25 31-05-2007 04:02:37
Form que se tarda mucho en abrir IVAND Varios 3 29-05-2007 02:14:07
Por que tarda mucho en abrir un EXE IcebergDelphi Varios 5 16-06-2004 11:05:28


La franja horaria es GMT +2. Ahora son las 16:46:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi