DMFilter consultas sobre sql

07/09/2007 - 19:54 por Jesús López | Informe spam
Hola amigos,
Antes de dar a conocer la causa de mi problema, permitamne explicar el
escenario donde surge mi peticion de ayuda.
Existe un sistema de adquisicion de datos llamado IBA-PDA de iba-ag, el
cual recopila los datos de algun proceso donde este tenga aplicacion.
Este sistema almacena la informacion en una base de datos SQL y desde
hace tres años esta recopilando la informacion a cada minuto. La
informacion se almacena en una tabla que a su vez tiene ya mas de
1,000,000 de registros y 258 columnas.

Realize una aplicacion en VB .Net 2003 que consiste en hacer consultas a
tablas de sql, con el fin de realizar filtros en la base de datos que
genera IBA-PDA.

El problema es que:
Los usuarios hacen sus consultas, pero decean tener la mayor informacion
posible en el menor tiempo.

en algunas ocaciones sus filtros generan mas de 100,000 registros y la
aplicacion se vuelve lenta.

¿existe alguna forma de darle velocidad a la peticion de los usuarios?

Preguntas similare

Leer las respuestas

#1 Wbert
07/09/2007 - 21:04 | Informe spam
Hola,

Pues suponiendo que los accesos a tus datos los haces a traves de SP's, la
tabla esta debidamente indexada.

Debes analizar el tipo de consultas que recibe tu aplicación, verificar que
tanto varia la respuesta minuto a minuto, hora a hora. De esta manera puedes
determinar cuales de estas consultas puedes almacenar en cache para
procesarlas solo una vez.

Parece que tienes una aplicacion de escritorio, no se que tan conveniente te
parezca poner toda la logica de procesamiento de datos en una sola maquina,
esto ayudaria al cacheo de información y tus maquinas clientes no tendrian
que ser tan buenas.

Tambien habria cositas que podrias hacer de acuerdo a como presentes la
información, si te parece pertinente cuentanos mas a detalle sobre tu
aplicación a ver como podemos mejorar el rendimiento de esta.

Saludos,

wbert




"Jesús López" wrote:

Hola amigos,
Antes de dar a conocer la causa de mi problema, permitamne explicar el
escenario donde surge mi peticion de ayuda.
Existe un sistema de adquisicion de datos llamado IBA-PDA de iba-ag, el
cual recopila los datos de algun proceso donde este tenga aplicacion.
Este sistema almacena la informacion en una base de datos SQL y desde
hace tres años esta recopilando la informacion a cada minuto. La
informacion se almacena en una tabla que a su vez tiene ya mas de
1,000,000 de registros y 258 columnas.

Realize una aplicacion en VB .Net 2003 que consiste en hacer consultas a
tablas de sql, con el fin de realizar filtros en la base de datos que
genera IBA-PDA.

El problema es que:
Los usuarios hacen sus consultas, pero decean tener la mayor informacion
posible en el menor tiempo.

en algunas ocaciones sus filtros generan mas de 100,000 registros y la
aplicacion se vuelve lenta.

¿existe alguna forma de darle velocidad a la peticion de los usuarios?

Respuesta Responder a este mensaje
#2 Jesús López
11/09/2007 - 15:36 | Informe spam
Gracias wbert por tu respuesta.
Pues en efecto la aplicacion es de escritorio y la informacion la
presento en un DataGridView. La consulta podria decirse que es dinamica,
ya que los usuarios, a travéz de una interfaz generan consultas sql,
posteriormente utilizando un SqlCommand lleno mi DataSet.
desgraciadamente no utilizo los stored procedures

El problema es que no se si es conveniente almacenar la informacion en
cache, ya que por lo regular las consultas para cada uno de los usuarios
son completamente diferentes. Esto se debe a que los mismo usuarios
requieren analizar informacion distinta unos de otros.

por ahora lo que hago para optimizar el proceso de consulta es separar
la base de datos, por ejemplo la ultima tiene 199,935 registros de enero
a la fecha de este año, pero los usuarios ya no quieren tener la
informacion en muchas bases de datos.


Saludos
Jesus



Wbert escribió:
Hola,

Pues suponiendo que los accesos a tus datos los haces a traves de SP's, la
tabla esta debidamente indexada.

Debes analizar el tipo de consultas que recibe tu aplicación, verificar que
tanto varia la respuesta minuto a minuto, hora a hora. De esta manera puedes
determinar cuales de estas consultas puedes almacenar en cache para
procesarlas solo una vez.

Parece que tienes una aplicacion de escritorio, no se que tan conveniente te
parezca poner toda la logica de procesamiento de datos en una sola maquina,
esto ayudaria al cacheo de información y tus maquinas clientes no tendrian
que ser tan buenas.

Tambien habria cositas que podrias hacer de acuerdo a como presentes la
información, si te parece pertinente cuentanos mas a detalle sobre tu
aplicación a ver como podemos mejorar el rendimiento de esta.

Saludos,

wbert




"Jesús López" wrote:

Hola amigos,
Antes de dar a conocer la causa de mi problema, permitamne explicar el
escenario donde surge mi peticion de ayuda.
Existe un sistema de adquisicion de datos llamado IBA-PDA de iba-ag, el
cual recopila los datos de algun proceso donde este tenga aplicacion.
Este sistema almacena la informacion en una base de datos SQL y desde
hace tres años esta recopilando la informacion a cada minuto. La
informacion se almacena en una tabla que a su vez tiene ya mas de
1,000,000 de registros y 258 columnas.

Realize una aplicacion en VB .Net 2003 que consiste en hacer consultas a
tablas de sql, con el fin de realizar filtros en la base de datos que
genera IBA-PDA.

El problema es que:
Los usuarios hacen sus consultas, pero decean tener la mayor informacion
posible en el menor tiempo.

en algunas ocaciones sus filtros generan mas de 100,000 registros y la
aplicacion se vuelve lenta.

¿existe alguna forma de darle velocidad a la peticion de los usuarios?

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida