FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consulta muy sencilla, extrañamente lenta
Saludos al foro.
Quería consultaros un problemilla muy tonto que tengo pero que no acierto a ver cual podría ser el origen. Me explico: Tengo una base de datos enorme donde se recogen datos de unos sensores. Tengo una tabla de sensores con la siguiente estructura: Nombre del Campo Tipo Not null Explicación ------------------------------------------------------------------------------------------------- IDSENSOR * INTEGER TRUE (Clave primaria,autoincremento) IDPROYECTO INTEGER TRUE (Apunta a la tabla de proyectos) IDTIPOSENSOR * INTEGER TRUE (Apunta a la tabla tiposensor) REF CHAR(6) TRUE (Referencia corta) * UBICACION VARCHAR(150) FALSE (Lugar donde se encuentra, no obligatorio) NOMBRE * VARCHAR(50) FALSE (Nombre largo, no obligatorio) ACTIVO SMALLINT TRUE (0 Inactivo, 1 Activo) BUENAFUNCION SMALLINT TRUE (0 No va bien, 1 Va bien) * = indica que hay índice ascendente. Un ejemplo de los datos que contiene: IDSENSOR IDPROYECTO IDTIPOSENSOR REF UBICACION NOMBRE ACTIVO BUENAFUNCION ------------------------------------------------------------------------------------------------------------------------------------------------ 184 1 1 TEM001 Azotea SENSOR TEMPERATURA 001 1 1 185 1 1 TEM002 Azotea SENSOR TEMPERATURA 002 1 1 186 1 1 TEM003 Azotea SENSOR TEMPERATURA 003 1 1 187 1 1 TEM004 Azotea SENSOR TEMPERATURA 004 1 1 188 1 1 TEM005 Azotea SENSOR TEMPERATURA 005 1 1 189 1 1 TEM006 Azotea SENSOR TEMPERATURA 006 1 0 190 1 1 TEM007 Azotea SENSOR TEMPERATURA 007 1 1 Y así hasta 70 registros (setenta, menos de cien, no setenta mil, es decir, muy pocos registros). La tabla Tiposensor tiene la siguiente estructura: Nombre del Campo Tipo Not null ------------------------------------------------------------------------------------------------- IDTIPOSENSOR * INTEGER TRUE (clave primaria, autoincremento) TIPO_LARGO * VARCHAR(20) TRUE (Nombre largo, obligatorio) TIPO* CHAR(3) TRUE (Nombre corto, obligatorio) * ACTIVO SMALLINT TRUE (1=activo, 0=no activo) (No lo uso) IDTABLADATOS * INTEGER TRUE (Apunta a otra tabla) IDTIPODATO * INTEGER TRUE (Apunta a otra tabla) * = indica que hay índice ascendente. Esta tabla sólo tiene 6 registros: IDTIPOSENSOR TIPO_LARGO TIPO ACTIVO IDTABLADATOS IDTIPODATO ---------------------------------------------------------------------------------------------------------------- 0 INDEFINIDO NOT 1 0 0 1 TEMPERATURA EN ºC TEM 1 1 2 2 HUMEDAD HUM 1 1 1 3 LLUVIA LLU 1 2 4 4 ENCHARCAMIENTO ENC 1 2 5 5 TEMPERATURA EN ºK TEK 1 1 3 Y en fín, el problema: Tengo un MDODataSet con el siguiente SelectSQL: 'select * from sensores order by ref' Esto me devuelve 70 registros y tarda ¡30 segundos! Pero esta tardanza ocurre sólo la primera vez que se abre el MDODATASET; las siguientes veces tarda menos de 1 segundo que es lo lógico y esperable. El MDODATASET tiene los campos de datos y además un campo lookup que apunta a la tabla TipoSensor para traer el tipo de sensor, y dos campos calculados que son del tipo booleano para convertir los campos ACTIVO y BUENAFUNCION al tipo true/false. He probado de todo: quitar la apertura del mdodataset del evento formshow, quitar los campos calculados y lookup .... y ya no se me ocurre nada más. Estoy desesperadico. ¿Alguna idea? ¿A alguien le ha pasado algo parecido? ¿Es un bug de los MDO? Uso D7, Firebird 2.0 y componentes MDO. Gracias de antemano. PD: Perdón por el rollo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con consulta lenta, lenta, lenta | Gregory Mazon | Firebird e Interbase | 22 | 27-06-2007 09:56:38 |
Consulta sencilla sobre ms access | fybeyancourt | Tablas planas | 2 | 05-03-2007 22:51:58 |
Error raro en consulta sencilla | papulo | SQL | 1 | 16-09-2005 10:41:42 |
Consulta Sencilla SQL + Delphi | Maury Manosalva | SQL | 4 | 08-09-2005 11:17:47 |
Consulta muy lenta | Walterdf | Conexión con bases de datos | 2 | 25-08-2004 18:37:57 |
|