Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Lento al abrir tabla

Hola amigos del foro acudo a uds de nuevo.
Tengo el siguiente inconveniente cuando abro una tabla de 12.000 registros (para mi concepto pequeña) el tiempo de espera es demasiado largo y en ocaciones me aparece el error "out of memory", en realidad la abro para luego ponerla en modo de inserción, podria hacer para reducir el tiempo al abrir la tabla y que no me aparezca este error, estoy utilizando firebird 2.0 y delphi 7 y los componentes que estoy utilizando son IBQuery de la paleta interbase, este es el fragmento del codigo donde ser produce el problema
Código Delphi [-]
      --al realizar esta instrucción el abrir existe el problema
      DataM.Cliente.Open;
      if DataM.Cliente.State In [DsBrowse] then
           DataM.Cliente.Insert;
      DBEdit2.SetFocus;

de antemano muchas gracias
Responder Con Cita
  #2  
Antiguo 13-12-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Si cliente es una tabla te aconsejo modificar tu programa para que haga uso de querys tanto para consultas como inserciones. Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 13-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Me adhiero al comentario de poliburro, es mejor emplear Querys en vez de Tables.
El uso de Tables provoca que se traigan todos los datos cada vez que se abre la tabla.

Deberías además considerar esto:
1. ¿Usas índices?
2. ¿La base de datos es local o remota?¿Está en una red?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 14-12-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Gracias por sus sugerencias, las aplicare, la bd es local y no uso indices
Responder Con Cita
  #5  
Antiguo 15-12-2008
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Cuando un dataset tiene muchos o pocos registros, lo que recomiendo es incluir una condición en la SQL que no devuelva registros.
Código SQL [-]
SELECT * FROM CLIENTES ID = 0
Si nunca existe un registro con ID = 0, la apertura del dataset es instantaneo y podrás crear multiples registros sin que exista lentitud. Eso sí, vas a incluir una carga masiva de registros, recomiendo que cada 100 registros realices commit, para recuperar la memoria consumida por la transacción

un saludo.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #6  
Antiguo 15-12-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A veces también hay que tener en cuenta la "anchura" de la tabla. No es lo mismo abrir una tabla con 5 campos, que una que tenga 20 columnas.
Para eso también te puede servir una SQL (Query) donde selecciones sólamente los campos estrictamente necesarios a visualizar.

De todas formas si va a abrir la tabla para luego utilizar un Insert puedes usar la sentencia TOP o algun filtro que te mimimize los registros.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
interbase lento al abrir una aplicacion roberto hurtado Firebird e Interbase 7 02-05-2008 19:52:17
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
Abrir tabla con formato .pfm kes Conexión con bases de datos 0 23-01-2006 14:16:29
Abrir 2 querys sobre una tabla muy lento Johnny Q Conexión con bases de datos 2 29-09-2005 20:46:34
Abrir tabla con indice cdx manel660 Conexión con bases de datos 1 08-01-2005 12:25:29


La franja horaria es GMT +2. Ahora son las 22:42:49.


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