Java y MySQL

Hola amigos nuevamente estoy consultando.

Dos cosas:

1.- Diseñé una aplicación en la cual consulta el estado de un usuario (conectado, en espera, desconectado, etc) mediante un timer consulta a la base de datos cada segundo para consultar el estado del usuario, si el cambia... Estoy haciendo bien? con el timer? o hay otra forma?

2.- Esta pregunta es de SQL, espero que me puedan ayudar: Una amiga me dijo que es mejor trabajar con procedimientos almacenados, ya que las consultas SQL son ineficientes cuando se trabaja con bastantes datos, es verdad? o cómo puedo hacer?

Gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

1.- Lo que estás haciendo es

1.- Lo que estás haciendo es algo así como un control de sesión, pero no dices si es una aplicación swing ( que es lo más seguro ) o una aplicación web.
Para qué necesitas saber el estado del usuario? si das más información, te podríamos echar la mano de forma más eficiente.

2.- Pues tiene razón, parcialmente, a qué le llama "bastantes datos", si bien es cierto que los store procedures son eficientes, pues no son la mejor opción para todo, por lo menos yo, no he visto una aplicación que trabaje 100% con procedimientos almacenados.

Imagen de ivlecamo

Gracias neko

Hola neko, perdona por no ser específico...

Estoy trabajando en un sistema que controla el tiempo de los usuarios... es decir, si el jefe ingresa a mi aplicación swing, va a visualizar los estados de los usuarios (desconectado, trabajando, descanso, etc), es un sw de control de calidad de atención al cliente... por esta razón necesito registrar tiempos de los usuario y su estado en tiempo real.

bastantes datos.- con esto quiero decir que existe mucha información en la base de datos... es decir, si hago una consulta a la base de datos (que está llena con mucha información previamente) la consulta sql funcionará correctamente?

Imagen de neko069

Sigue siendo relativo...

Pues mira, con respecto del control de los usuarios, se me hace como si de los estados del messenger se tratara entonces, puedes poner un contador, que se esté ejecutando, y que el usuario, conforme a su actividad, reseteara el contador... igual le puedes poner banderas al contador, si llega a determinado tiempo, pues que cambie el estado del usuario, o cosas por el estilo.

En tu segundo comentario, pues sólo hay una forma de saber si la consulta es rápida o es mejor un procedimiento almacenado.
Yo me iría más por el procedimiento almacenado, cuando se trata de acceder tablas, ejecutar operaciones, cambiar valores, producir resultados... cosas que tal vez manejarlas en código, sea muy costoso en cuanto hay que cambiar cosas, y tener que rehacer la aplicación muy seguido, entonces sí, hay construyes un procedimiento almacenado, y el cambio va en la base de datos, sin cambiar tu aplicación.

Si sólo son selects, con determinados filtros, no deberías tener problemas con el performance, es decir, diseña bien tus consultas, acótalas, para que sólo obtengas estrictamente lo que vayas a usar.

Imagen de ivlecamo

MG

Muchas gracias haré las pruebas del caso y te comentaré...

Saludos