FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Consulta velocidad consultas en Firebird
A ver por donde empiezo??
Bueno, lo primero he buscado en los foros pero no he encontrado nada por eso planteo mi consulta El caso es que tengo varios clientes conectados a un servidor con firebird 1.5.1 Esta instalado el Super Server Todos los equipos tienen XP Desde estos clientes, ejecuto una consulta (select ...) que aproximadamente tarda unos 3 segundos. Cuando esta consulta la lanzo simultaneamente o en un intervalo de medio segundo entre equipos desde 2 equipos el tiempo de respuesta en los dos se duplica Si la lanzo de tres equipos se y triplica y asi sucesivamente. Pensaba que lo logico era que que uno tardara 3 segundos, el segundo algo mas, el tercero algo mas etc... pero no que se sumaran los tiempos y la respuesta fuera la misma en todos los equipos. En principio esto me ocurre con varias consultas que he probado No se si a alguine se le ocurre que puedo estar haciendo mal, como conseguir mayor velocidad, cualquier sugerencia es bienvenida |
#2
|
||||
|
||||
Holas,
No he tenido ningun "encuentro cercano del tercer tipo" con firebird, pero la poca experiencia con Interbase 7.1 y Delphi 7.0 me han enseñado que para mis consultas sean optimas/rapidas---> son crear los indices necesarios para dichas consultas. Por ejemplo
para que esta consulta sea rapida necesitas un indice para el campo fcodigo En un comienzo no le preste mucho interes a los indices ya que cuando hacia una consulta era veloz, pero cuando migre data...."ya la tabla llena" se notaba lento. Inclusive (ojo pestaña y ceja), tratar de no hacer consultas como lo viejos tiempos del clipper/foxpro--grillas de toda nuestra data--es el peor "error" que se puede cometer---claro tablas chiquitas si podeis. No quiero subestimar tu experiencia es solo un indicador para otros que posiblemente esten empezando con este motor de base de datos. Si este no fuera tu caso, desconozco el error y francamente me gustaria saber la solucion a ello. Ahora, comentas que la demora empieza a sumarse por cada consulta de cada pc, humm..., pienso que cada pc que ataque al servidor, demoraria de acuerdo al criterio de seleccion, pero si la consulta es la misma en todas las pc no debria demorar ya que el servidor tendria ya resuelto el "select" Al menos esa es mi humilde opinion, (no se-si lo lei, me lo djieron o lo soñe) no se que opinaran nuestros moderadores Your friend StartKill Lima-Perú Última edición por StartKill fecha: 04-11-2004 a las 23:58:27. Razón: ? |
#3
|
||||
|
||||
Gracias por la respuesta
La verdad es que el tema de los indices, tampoco le habia prestado mucha atencion, pero es lo primero que mire en cuanto me encontre con este tema, y ahora todos los indices necesarios para la consulta estan creados. seguimos a la espera ;-) |
#4
|
|||
|
|||
Es totalmente normal que si una consulta tarda 3 segundos 2 consultas iguales hechas a la vez tarden 6 segundos. El microprocesador tiene una velocidad de proceso fija, no puedes hacer que haga los calculos mas rapido.
Las consultas que haces tienen que ser muy "bestias" para que tarden 3 segundos o no estan definidos los indices adecuados para acelerar la consulta. Los indices hay que definirlos de acuerdo con como sean las queries que se hagan. Hay que analizar cada query que vaya lenta y definir los indices de la forma necesaria para que la sentencia los pueda aprovechar: los campos y el orden de ellos dentro del indice tienen que estar exactamente ajustados a la query, sino no valen de nada. Si posteases la query e indicases cuantos registros por tabla e indices tienes, etc, quizas se pudiese dar una solucion mas concreta. Saludos |
|
|
|