Rendimiento MySQL

TYRI0N

Hola buenas,
necesito algo "muy concreto", os explico:
En el trabajo estoy realizando un programa en C# con una dll (para acceder a una BD en MySQL). El programa necesita recoger unas estadísticas según un Access_ID. Cada Access_ID nuevo introduce una media de 400.000 registros, por lo que la pérdida de rendimiento es considerable y el programa se queda obsoleto en poco tiempo, ¿porque?, porque cada vez que realizo una consulta a la BD, en el codigo tengo que indicar el timeout de la consulta, primero lo puse a 90 segundos, e iba bien, 100 Access_ID mas tarde, tuve que poner 120, y ahora, con 490 Access_ID, 180.
Mi pregunta es, ¿conoceis más o menos la función que indica cuál es la pérdida de rendimiento de la base de datos?
deciros que el cache de consultas está activado, por lo que se pierde aún mas rendimiento, y la BD no puede dividirse en varias, solo cada cierto tiempo se crea una nueva.
Mi idea es configurar el timeout según una funcion del estilo:
timeout = 100 + (1+((nº de Access_ID/100) 2))*10 o cosas por el estilo, pero es por tener más exactitud, ya que tampoco quiero tener un timeout exagerado.
También decir que es común que se estén introduciendo nuevas Access_ID desde un equipo y sacando resultados desde otro, por lo que el rendimiento aún es peor.
También había pensado en que se pueda condifurar el timeout manualmente, pero esa opción queda desechada porque los usuarios finales de este programa no tienen porque conocer nada sobre sobre bases de datos, timeout en consultas, etc, vamos, que no tienen porque tener conocimientos informáticos.

Gracias :)

Soltrac

No puedes introducir los registros en bloques? Con transacciones q se ejecuten todas si todas funcionan y si no rollback....

TYRI0N

el problema esque el programa está terminado (por lo que no es muy recomendable hacer variaciones profundas) y las ordenes de hacerlo así son de arriba, básicamente es un: "hazlo así y búscate la vida chavalote"

Soltrac

Pues....entonces no se me ocurre otra forma. Haz estimaciones de tiempo introduciendo registros y saca una fórmula como tu dices. No conozco el tiempo, pero seguramente el incremento sea lineal y no exponencial, así q no tendrás muchos problemas.

Usuarios habituales

  • Soltrac
  • TYRI0N