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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2008
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
Entiendo lo que dice Ronpablo, pero en cualquier sistema va haber consultas como estas: 'Select * from tabla' tanto en Paradox como en Firebird, son indispensables, entonces la pregunta es como hacer en Firebird para que sea mas rápido, abra alguna propiedad, algún componente o alguna forma de escribir el código, no se si alguien me puede ayudar, desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 08-05-2008
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 23
RONPABLO Va por buen camino
La idea es la siguiente, si tu estas trabajando con información realmente necesitas "pocos datos", si quiere sacar un reporte de personas que han pagado entre el 1 de enero del 2008 hasta el día de hoy es ineficiente traer ademas todos los pagos realizados antes del primero de enero, lo mismo si tu quieres ingresar, cambiar o borrar los pagos de Pedro Perez, para que vas a tener en memoria los pagos de mil u once mil personas más que no estas usando en el momento, es ahí a la hora de hacer esos filtros donde Firebird es un monstruo que se come en velocidad a Paradox por lo que te explique anteriormente... Entonces para trabajar yo normalmente uso los componentes IBX, de forma tal que a la hora de consultar los pagos entre fechas hago algo así como el siguiente Query el cual pongo dentro de la propiedad SQL de un componente de tipo IBQuery:

Código SQL [-]
select * from pagos where fecha betwwen :f1 and :f2


Ahora cuando quiero realizar, modificar o borrar pagos trabajo con el componente IBDataSet en la propiedad SelectSQL pongo:

Código SQL [-]
Select * from pagos where id = :unParametro

luego en el componente visual le hago clic derecho al componente IBDataSet y selecciono DataSet Editor y genero los otros códigos de forma automática y así trabajo muy rápido
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #3  
Antiguo 08-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
La forma de agilizar las consultas en Firebird es bien fácil:
- definir clave primaria en todas las tablas
- definir índices sobre los campos de búsquedas más usuales, en forma ascendente o descendente, según se use en las búsquedas. Si es un campo que se repite mucho el mismo valor, no será candidato a ser un índice.
- Ya en modo avanzado, ver el plan de ejecución de la consulta SQL y asignar tú mismo el plan.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 08-05-2008
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 147
Poder: 20
marilinspi Va por buen camino
hola, Lepe... segui todos tus consejos y la velocidad aumento un 25%, te cuento lo que tengo que hacer es simple, al abrir el formulario Articulos y a travez de esta consulta

Select *
From Articulos
Order by Nombre_ART

traer todos los articulos. Ya le cree el indice al Nombre_ART y la clave primaria a Numero_ART, pero aunque la velocidad haya aumentado sigue siendo lento, no se si tenes algun consejo para darme para esta consulta especifica. Desde ya muchas gracias
Responder Con Cita
  #5  
Antiguo 08-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Si es un Select *, lo único que puedes hacer es:
Código SQL [-]
select FIRST 100 * 
from articulos
Order by Nombre_ART

con 100 registros llenarás el espacio visible de un Grid, y cuando el usuario use el scroll se pedirá los demás datos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



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
Windows server 2003 SP2 firebird 1.5 lento hugoaponce Firebird e Interbase 4 05-03-2008 18:59:43
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
Prepare lento en Firebird.. y en MySQL?? xander MySQL 11 01-11-2006 03:02:36
De Paradox a Firebird morta71 Firebird e Interbase 5 05-10-2006 20:31:24
Que tan lento es el DBE en red? usando Paradox orfeo Conexión con bases de datos 0 02-07-2003 08:51:08


La franja horaria es GMT +2. Ahora son las 21:00:17.


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