Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Threads, formularios y SQL (https://www.clubdelphi.com/foros/showthread.php?t=82290)

elrayo76 19-02-2013 21:56:12

Threads, formularios y SQL
 
Tengo una aplicación que corre consultas pesadas y por ende mientras estas corren se queda paralizada. Al pasar esto los usuario se quejan de esto.

Lo que quiero es como se puede hacer para poner todo lo relacionado a la carga, refresco, pintado, etc de las pantallas en un thread y por otro lado los que tiene que ver con las consultas SQL.

Saludos,
El Rayo

Caral 20-02-2013 01:46:20

Hola
No se mucho de estas cosas pero me parece que la sentencia sql se podria mejorar ya que no tendria por que ser lenta.
Claro, es una opinion subjetiva sin ver la sentencia, sin saber que o cuantas tablas revisa ni cuantos registros puede traer.
Saludos

Casimiro Noteví 20-02-2013 02:01:57

Cita:

Empezado por Caral (Mensaje 455230)
Hola
No se mucho de estas cosas pero me parece que la sentencia sql se podria mejorar ya que no tendria por que ser lenta.
Claro, es una opinion subjetiva sin ver la sentencia, sin saber que o cuantas tablas revisa ni cuantos registros puede traer.
Saludos

^\||/ .

elrayo76 20-02-2013 02:42:18

Cita:

Empezado por Caral (Mensaje 455230)
Hola
No se mucho de estas cosas pero me parece que la sentencia sql se podria mejorar ya que no tendria por que ser lenta.
Claro, es una opinion subjetiva sin ver la sentencia, sin saber que o cuantas tablas revisa ni cuantos registros puede traer.
Saludos

Amigo Caral,

La sentencia SQL ya está optimizada y no creo que se pueda optimizar mas de lo que esta. El problema que es una aplicación para empresas de tarjetas de créditos y estas consultas pueden traer datos de muchas tablas y a su vez estamos hablando de mas de 10.000 registros si pensamos todos los clientes que estas pueden tener y la cantidad de transacciones diarias que se hacen.

Por ese motivo es que necesito que la aplicación tenga esa característica que digo. Ademas me encomendaron la tarea de ver como hacerlo a mi y mucho no conosco de threads.

Saludos

olbeup 20-02-2013 08:19:51

Hola elrayo76,

Si buscas un poco hallarás respuestas, mira este link de Neftali que habla de ello.

Un saludo.

Casimiro Noteví 20-02-2013 11:16:30

Cita:

Empezado por elrayo76 (Mensaje 455232)
La sentencia SQL ya está optimizada y no creo que se pueda optimizar mas de lo que esta. El problema que es una aplicación para empresas de tarjetas de créditos y estas consultas pueden traer datos de muchas tablas y a su vez estamos hablando de mas de 10.000 registros si pensamos todos los clientes que estas pueden tener y la cantidad de transacciones diarias que se hacen.

Bueno, diez mil registros es nada para cualquier sistema de bases de datos actual, "lo normal" es que tarde décimas de segundo.
Muchos estamos habituados a trabajar con bases de datos con decenas de millones de registros y ninguna sentencia sql puede tardar ni un segundo.
Así que el comentario de Caral está más que justificado.

Cita:

Empezado por elrayo76 (Mensaje 455232)
Ademas me encomendaron la tarea de ver como hacerlo a mi y mucho no conosco de threads.

Bueno, por lo visto tampoco es tu fuerte, pero el enlace que te ha puesto olbeup te ayudará :)

Aunque yo miraría antes de afinar la sql que estés usando.

Neftali [Germán.Estévez] 21-02-2013 12:28:20

Cita:

Empezado por elrayo76 (Mensaje 455228)
Tengo una aplicación que corre consultas pesadas y por ende mientras estas corren se queda paralizada. Al pasar esto los usuario se quejan de esto.
Lo que quiero es como se puede hacer para poner todo lo relacionado a la carga, refresco, pintado, etc de las pantallas en un thread y por otro lado los que tiene que ver con las consultas SQL.

Lo primero es aconsejar lo mismo que han dicho mis compañeros. Lo principal es intentar "mejorar" las consultas.
Aun así hay veces en que no es posible porque se trabajan con muchos datos, por ejemplos temas de listados, estadísticas,...

Una opción en este caso pueden ser los threads, pero para saber más deberías explicar con qué Base de Datos estás trabajando y qué componentes usas. Por lo general para lanzar consultas en threads separados lo más importante es que utilices conexiones diferentes (no puedes usar la misma que para el resto). También es necesario saber qué tipo de consultas son las que deseas "modificar".

En cuanto a realizar otros trabajos usando threads, piensa que la idea es que puedas extraer a threads procesos u operaciones, que en cierta manera, sean independientes del resto. No tiene sentido intentar pasar a un proceso diferente una operación que está muy relacionada con otros aspectos del programa.

Tal vez con algo más de información se pueda ser más concreto.


La franja horaria es GMT +2. Ahora son las 00:33:31.

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