Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
Optimización de los índices

Me gustaría saber si es posible regenerar indices de la base de datos con interbase 7.1 para conseguir acelerar el acceso a las tablas de forma manual.

Tengo entendido que interbase realiza este proceso automáticamente cuando no hay nadie conectado pero, podría hacerlo en caliente con algún comando ?


Saludos...

Última edición por AMINOA2R fecha: 03-08-2005 a las 16:09:35.
Responder Con Cita
  #2  
Antiguo 03-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Puedes crear indices con la orden

create index <Nombre_Indice>
on <nombre_tabla>(<Lista_de_campos>)

Por ejemplo

Create index ISLuIDX
on CLIENTES( COD_CLIENTE,NOM_CLIENTE )
Responder Con Cita
  #3  
Antiguo 03-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Ups disculpa, lei por encima el mensaje y pensé que querías crear índices.

En IB tienes el Sweep interval, el cual cada X número de transacciones hace una especie de "pack"

De todos modos lo que yo hago es hacer un backup y un restore de la BD, lo cual mejora mucho el rendimiento, pues al hacer el restore si que genera de nuevo los índices, incluso el tamaño de la BD se hace menor.

Yo tengo una tarea programada en el servidor, cada fin de semana paro el servicio de FireBird, renombor la BD ( con la fecha, asi tengo una copia semanal que posteriormente grabo en DVD ), hago un gBak de la BD y posteriormente un restore, posteriormente reinicio el servicio de IB.

Se nota bastante, sobre todo en las insercciones / modificaciones.
Responder Con Cita
  #4  
Antiguo 03-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
Yo noto bastante más rápida la base de datos los lunes pero conforme vamos avanzando la semana, los accesos van siendo más lentos.

Compruebo que me van más lentos para cada una de las empresas que tenemos y que estan en GDB´s diferentes lo cual me indica que el retardo que tengo al final de la semana se debe más bien al motor de la base de datos más que a la propia base ya que entre a la base que entre un viernes, todas van lentas por tanto, más bien el problema va a ser del que gestiona todas ellas; es decir, del IBSERVER pero, no se que mantenimiento se puede hacer sobre el motor de bases de datos.
Responder Con Cita
  #5  
Antiguo 03-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Cita:
Empezado por AMINOA2R
Yo noto bastante más rápida la base de datos los lunes pero conforme vamos avanzando la semana, los accesos van siendo más lentos.[..]
Haces algún tipo de operación los fines de semana, como por ejemplo apagar el servidor?. Informate de como esta el Sweep Interval en cada BD.

Yo te recomiendo que pruebes a hacer un backup y posteriormente restaurarlo, verás como el tamaño de la bD es considerablemente menor, y el rendimiento mayor. Si pones una tarea planificada en el servidor, la cual llame a un batch donde llames al gBak ( mirate los comandos que admite ).

Que yo sepa, al motor no hay que hacer nada, es a la base de datos, automaticamente lo hace según el sweep interval.
Responder Con Cita
  #6  
Antiguo 03-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
Pues yo estoy convencido de que los sweep los hace internamente el interbase como tu bien comentas pero cuando no hay nadie conectado.

Es como si la base de datos se arreglará o le pusieran turbo al servidor los lunes.

Por este motivo, no hago restores aunque si hago backup programados. Se arregla el solito y sin reiniciaralo. Po que? Debería tener el mismo problema un lunes sin embargo sin hacer nada, el archivo IBSERVER.EXE baja en tamaño de megas si lo miras desde el administrador de tareas de windows y el tamaño de memoria de carga de transacciones.
Responder Con Cita
  #7  
Antiguo 04-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Has mirado el valor del Sweep Interval, quizás sea una tonteria, pero a lo mejor lo que pasa es que llegas al valor del sweep interval a media semana, se pone el servidor a hacer el sweep, con lo que ha de repartirse entre la operación de sweep y dar servicio, cuando llega el fin de semana y no hay nadie, termina de hacerlo sin problemas.

Prueba a ver que valor tiene el Sweep.

Que yo sepa el sweep lo hace en caliente, como el backup.

De todos modos insisto, si haces el backup y el restore, irá mejor, independientemente del Sweep, yo lo he probado en mis "carnes", y el tamaño del GDB se reduce ( aunque todo depende del tamaño ).
Responder Con Cita
  #8  
Antiguo 04-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
He entrado a Performance Monitor y en Sweep Internal me pone = 20000

atabase header page information:
Flags
Checksum 12345
Generation 127532
Page size 4096
ODS version 11.1
Oldest transaction 405028
Oldest active 405029
Oldest snapshot 405029
Next transaction 498734
Bumped transaction 1
Sequence number 0
Next attachment ID 7726
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Jul 9, 2005 9:21:42
Attributes

Variable header data:
Sweep interval: 20000
*END*




Responder Con Cita
  #9  
Antiguo 04-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Asi es como lo tengo yo, a 20000.

Yo utilizo EMS para trabajar con IB. Qué herramienta usas tú?

Has probado a realizar una validación?,

Hoy jueves debe ir ya lenta la BD,verdad ?

Por que no pruebas a realizar un Backup y un restore ?, mira las opciones que lleva el gBak, ( gBAK -? ).

Última edición por islu fecha: 04-08-2005 a las 10:59:42.
Responder Con Cita
  #10  
Antiguo 04-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
Si es que el problema que tengo es que tengo a unas 40 personas conectadas en horario de oficina y durante las 24 horas de lunes a viernes por tanto tengo siempre usuarios activos por lo que puedo hacer backup pero no restores ya que las bases están en uso.

Utilizo interbase 7.1 con W2003.

Hoy jueves ya van más lentos los accesos a las tablas aunque se puede trabajar bien. Tengo solo 800MB de disco libre en C y tal vez este sea el problema. Estoy por hacer que la memoria virtual que usa windows sea sobre otro disco duro que no sea el de C. Tal vez este sea el problema...

Lo que si tengo claro es que si entro en alguna de las empresas que tenemos y que se que nadie entra durante la semana, igualmente va lentos los accesos a las tablas de esta base un viernes frente a la rapidez del lunes.

Esto me indica que es como si el motor que hace que todas las bases funcionen, estubiera sobrecargado de trabajo.

No se no se...
Responder Con Cita
  #11  
Antiguo 04-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Si que puede ser muy importante el espacio de disco duro, yo siempre he montado el servidor de Interbase, en el servidor con un disco duro solo con el sistema operativo, interbase y 2 ó 3 utilidades que necesitase.

De que tamaño hablamos de la BD?
Responder Con Cita
  #12  
Antiguo 04-08-2005
AMINOA2R AMINOA2R is offline
Miembro
 
Registrado: may 2005
Posts: 90
Poder: 19
AMINOA2R Va por buen camino
Los clientes, proveedores,articulos, etc... los tengo en un GDB que pesa 24MB y los pedidos, albaranes, facturas, recibos, etc... en otro que pesa 170 MB.

No veo que el tamaño me cause retardos por lo que te comento de los lunes. Los lunes va super rapido todas las tablas, los martes un poquito más lentos y asi...

Tiene solo en el server 512 MB de RAM con W2003 y estoy tambien pensando meterle más pero, tengo que parar a toda la empresa para hacer pruebas y pruebas y me gustaría acertar a la primera...

No conozco EMS. Que tal esta ?
Responder Con Cita
  #13  
Antiguo 04-08-2005
islu islu is offline
Miembro
 
Registrado: jun 2003
Posts: 111
Poder: 21
islu Va por buen camino
Relamente el tamaño no creo que sea, de echo con el backup y restore que te he comentado no creo que ganes mucho, pensaba que eran mayores.

Una cosa que no he hecho nunca es tener 2 BD.

Respecto a la memoria si que creo que debas subirle.

No se si te enterastes algunos problemas que hubo con XP e interbase ( algo referente a que asumia que la extensión GDB era del sistema y la incluia en las copias que saca para recuperar el sistema, ten cuidado con ello, un cliente mio por pasarse de listo machacó el GDB ), y algo también hubo con el W2003 y la velocidad de Interbase ( tuvimos que migrar a FireBrid algunas instalaciones ), algunos problemas tuvimos también con alguna versión del Panda y su firewall; pero entiendo que con Interbase 7.1 se habará corregido el problema de velocidad, mirate este hilo ( habrá más )http://www.clubdelphi.com/foros/showthread.php?t=4657
, si tuvieses el problema con el firewall de panda no te conectaría siquiera, y el problema con XP e Interbase era que tardaba muchismo en conectar.

Por cierto, si decides pasar de Interbase a FireBird, ten cuidado, ya no son 100% compatibles, en la base si, pero ya hay algunas diferencias.


La herramienta EMS es maravillosa, se parece mucho al entorno de delphi, y permite mil filigranas al programar triggers o procedimientos almacenados, no tendría sitio en este post para comentar las virtudes de esta aplicación. Te recomiendo que al menos la evalues.
Responder Con Cita
  #14  
Antiguo 04-08-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Recuerda que las extenciones .Gdb Windows las trata de un amanera especial no se esto aun es asi dependiendo de en que directorio se encuentra.

Una cosas que lenguajes estas usando y que componentes.

Ten en cuenta que si el que interbase tiene versionado d eregistros lo cual hace creecer la base de datos mucho y el swee no aregla el tamño solo marca el espacio como reutilizable. La hace rbakup y restore esta si acelera el proceso.

Mir ahay muchas maneras de hace rendir tu aplicacion pero aqui es mas astucia del progrmador que del manejador. Como traer local mente la data que s eusa mucho y se modifica poco disparar eventops cuando estas datas se modifique n para que se actuelicen los cambio sen loscleintes.

Otra cosa si tu aplicacion tiene muchas consultas es bueno una paginacion grande.

Si solo hace muchas inserciones es mejor una paginacion pequena.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:07:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi