![]() |
Sql lenta la primera vez
Utilizo D7 y FB1.5 me ocurre que la primera vez que ejecuto la sql de abajo me va lento aproximadamente tarda 1 minuto.
Si la vuelvo a ejecutar posteriormente ya va rapida unos 2 segundos. Para que vaya lenta debo cerrar el pc y encenderlo de nuevo. en Historico y en Articulos existe una clave para ARTICULO. Todas las claves estan activas. ¿Alguna sugerencia? |
El problema es que debe recorrer por completo la tabla de 'historico' para hacer el sum() de los campos 'salidas' y 'entradas'.
Y se supone que en 'historico' tienes muchos registros. Y por si fuese poco, lo tiene que recorrer por cada artículo. Yo probaría primero con el 'select sum()' con cualquier artículo para ver cómo se comporta, y una vez afinado ese select es cuando lo probaría por completo. |
Digamos que tu consulta es simplemente muy fea jajaja, ahora veamos como podria ser para acelerar un poco el sql
|
Usaria algo como esto... alguien tiene una mejor idea
Tambien podria ser INNER JOIN en lugar de LEFT JOIN pero eso lo dejo a criterio del creador de la base de datos |
Hay unos 7500 articulos y 95.000 registros en historico.
Con la consulta que me propones, continúa siendo lenta la primera vez. Ahora en vez de 1 minuto esta unos 30 segundos, y el resto de veces es más o menos igual. Lo que no entiendo es porque la primera vez es más lenta y despues más rápida. Estoy haciendo la consulta con IBExpert. Incluso parando el motor de base de datos y arrancando de nuevo, continúa siendo rápido. Pero si cierro el pc y lo reinicio vuelvo a ser lento la primera vez. Por cierto, casimiro, si primero hago un Cuando hago la select normal ya funciona rápido. Es como si tuviera que ver recorrerse una vez el historico..... |
Pero si haces esa primera vez: select count(*) from historico
¿es lento también? Pásanos la estructura de la tabla |
No, si hago primero el select count o select sum(), la primera vez ya funciona rapido.
Puedo enviarte la base de datos solo con las 2 tablas, ocupa 1,5Mb en rar. |
envíamelo por email, si quieres
|
Bueno, he estado haciendo algunas pruebas y no he detectado lentitud en ningún caso, ni la primera vez... ni ninguna :confused:
Código:
Select a.ARTICULO,a.DESCRIPCION,Cita:
|
| La franja horaria es GMT +2. Ahora son las 01:09:03. |
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