Ver Mensaje Individual
  #1  
Antiguo 12-11-2010
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Reputación: 22
sur-se Va por buen camino
Servidor linux con CPU al 100%

Hola
Tengo un servidor linux ejecutando firebird 1.5.6 SS . He revisado los parámetros del fichero firebird.conf para optimizar el DefaultDBCahePage a 10240 para tomar algunas páginas más de las 2048 por que trae por defecto.

El tema es que el servidor al ejecutar determinadas consultas se pone al 100% y deja al resto de los equipos inoperativos.
He revisado dichas consultas y están optimizadas. De hecho los analizadores marcan que todas las consultas se realizan mediante índices.
En cualquier caso, con independencia de que la consulta tarde más o menos, lo que no entiendo es porque se quedan bloqueados el resto de los equipos, poniéndose el servidor al 100% de la cpu. ¿No debería ir más lento pero no bloquearse?
La cuestión es que me pasa en servidores diferentes así que pienso que es un problema del Firebird. He buscado el error en ibphoenix pero no he conseguido solucionarlo con las indicaciones: http://www.firebirdfaq.org/faq312/
ya que la instrucción que ejecuto es un select con joins entre tablas.

La consulta que ejecuto desde el IBExpers:
Código:
select cabalbcli.ncentro, linalbcli.carticulo, linalbcli.ncod_albaran, linalbcli.ccod_serie, 
linalbcli.ncod_orden,cabalbcli.npuntoventa, cabalbcli.ncliente, cabalbcli.dfecha, 
linalbcli.ncantidad1, linalbcli.ncantidad2, linalbcli.ncantidadvalor, cabalbcli.ntipoop
from cabalbcli, linalbcli, articulos, artifabr, multipuntosventa 
where
 cabalbcli.ncod_albaran = linalbcli.ncod_albaran and cabalbcli.ccod_serie = linalbcli.ccod_serie and
 linalbcli.carticulo = articulos.ccod_articulo and  artifabr.ccod_articulo=articulos.ccod_articulo and
 artifabr.ncod_fabricante = 1 and artifabr.lprincipal=1
 and multipuntosventa.ncod_puntoventa=cabalbcli.npuntoventa  
 and multipuntosventa.ncod_fabricante=1 and
 cabalbcli.lfacturable=0  and cabalbcli.ntipoop=2 and
 linalbcli.lenvase=0 and linalbcli.ncantidadvalor < 0  and artifabr.csureferencia is not null
 and multipuntosventa.nptovtaserv is null  
 and (linalbcli.ctipolinea='V' or linalbcli.ctipolinea='P' or linalbcli.ctipolinea='R')
 and linalbcli.nenlacefab is null  and (cabalbcli.dfecha >= '10/01/10' and cabalbcli.dfecha <= '10/31/10')
 order by linalbcli.carticulo, linalbcli.ncod_orden, linalbcli.ccod_serie, linalbcli.ncod_albaran
El plan que me propone son todas las consultas indexadas:
PLAN SORT (SORT (JOIN (CABALBCLI INDEX (FK_CALCLI_TIPOPE,IDX_CALCLI_FECHA),LINALBCLI INDEX (FL_LINALBCLI_ENLACEFAB,FK_LALCLI_CALCLI),ARTIFABR INDEX (PK_ARTIFABR),ARTICULOS INDEX (PK_ARTICULOS),MULTIPUNTOSVENTA INDEX (FK_MULPTOVTA_SERPTOVTA,PK_MULTIPUNTOSVENTA))))

No sé que más puedo mirar.
Gracias.

Última edición por sur-se fecha: 12-11-2010 a las 12:20:53.
Responder Con Cita