Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Proyecto, Monitoreo y Optimizacion de nuestra BD en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=58070)

felipe88 07-07-2008 17:33:58

Proyecto, Monitoreo y Optimizacion de nuestra BD en Firebird
 
Saludos amigos del Club ;)

Viendo una presentacion de Andreano Lanusse del CodeGear developer days I sobre como monitorear las bases de datos en Interbase, se me ocurrio la idea de porque no hacer lo mismo en Firebird, pero de forma que esta pueda ser aplicada a nuestras bases de datos sin problema mediante una simple aplicacion, en la que solo nos conectamos a la BD y tendremos las opciones ya preparadas para el mantenimiento.

La idea que tengo es proponerles a ustedes realizarlo entre todos, un trabajo de grupo, de este modo con sus aportes se lograra un resultado mejor (Dos cabezas piensan mejor que una ;) ) bueno tampoco deben sentirse obligados :rolleyes:... es solo una idea.

Admito que no soy un experto ni mucho menos, pero si me considero un poco hiperactivo cuando estoy aprendiendo algo nuevo; un poco cacharrero en otros terminos :p; en base a esto estuve revisando lo que llamaria Tablas temporales en Firebird con lo que se podria empezar a trabajar la parte del monitoreo.

Código SQL [-]
RDB$PAGES
RDB$DATABASE
RDB$FIELDS
RDB$INDEX_SEGMENTS
RDB$INDICES
RDB$RELATION_FIELDS
RDB$RELATIONS
RDB$VIEW_RELATIONS
RDB$FORMATS
RDB$SECURITY_CLASSES
RDB$FILES
RDB$TYPES
RDB$TRIGGERS
RDB$DEPENDENCIES
RDB$FUNCTIONS
RDB$FUNCTIONS_ARGUMENTS
RDB$FILTERS
RDB$TRIGGER_MESSAGES
RDB$USER_PRIVILEGES
RDB$TRANSACTIONS
RDB$GENERATORS
RDB$FIELD_DIMENSIONS
RDB$RELATION_CONSTRAINTS
RDB$REF_CONSTRAINTS
RDB$CHECK_CONSTRAINTS
RDB$LOG_FILES
RDB$PROCEDURES
RDB$PROCEDURE_PARAMETERS
RDB$CHARACTER_SETS
RDB$COLLATIONS
RDB$EXCEPTIONS
RDB$ROLES

Espero contar con buena aceptacion y aportes por parte de ustedes y asi finalmente lograr un buen resultado gracias al trabajo en equipo de esta gran comunidad :)

Saludos

RolphyReyes 07-07-2008 18:00:03

Saludos.

Todo va a depender de que quieres monitoriar, porque lo que muestras son las tablas del sistema y no temporales como indicas (sin animo de ofender).

En Interbase 7 o Interbase 2007 y Firebird 2.1 vienen con tablas del sistema con el proposito de monitoriar las transacciones que se realizan en la BD.

Hasta luego.

felipe88 07-07-2008 20:05:53

Cita:

Empezado por RolphyReyes (Mensaje 298703)
Saludos.

Todo va a depender de que quieres monitoriar, porque lo que muestras son las tablas del sistema y no temporales como indicas (sin animo de ofender).

En Interbase 7 o Interbase 2007 y Firebird 2.1 vienen con tablas del sistema con el proposito de monitoriar las transacciones que se realizan en la BD.

Hasta luego.

Bueno admito que me equivoque con lo de "temporales" :rolleyes: eso me lo invete yo :p... y es eso exactamente monitorear nuestra BD teniendo ya la programacion montada y toda la cosa; ademas de porque no, crear copias de seguridad y eliminar datos innecesarios o nulos

felipe88 07-07-2008 20:09:02

Añado:

La idea es de que una vez terminado como tal, este pueda estar disponible para el uso de todos los que lo necesiten.

jhonny 07-07-2008 20:46:51

A partir de Firebird 2.1 se han agregado las tablas temporales que tienen dicho fin, estas tienen como prefijo MON$, incluso para Firebird 2.5 han agregado una nueva tabla para monitorizar también la memoria, que es algo que a leguas hacia falta :D, mejor dicho... ese tema va viento en popa :D.

felipe88 07-07-2008 22:45:40

Cita:

Empezado por jhonny (Mensaje 298755)
A partir de Firebird 2.1 se han agregado las tablas temporales que tienen dicho fin, estas tienen como prefijo MON$, incluso para Firebird 2.5 han agregado una nueva tabla para monitorizar también la memoria, que es algo que a leguas hacia falta :D, mejor dicho... ese tema va viento en popa :D.

Eso si que mejora la cosa ;)... espero encontrar mas documentacion util, ya le veo futuro a esta idea; solo espero no me toque hacerlo solo :(

jhonny 07-07-2008 22:56:59

Cita:

Empezado por felipe88 (Mensaje 298784)
Eso si que mejora la cosa ;)... espero encontrar mas documentacion util, ya le veo futuro a esta idea; solo espero no me toque hacerlo solo :(

En alguna parte vi que los de FlameRobin piensan hacerlo una vez salga la versión 2.5, ya que dicha versión va a mejorar en buena manera el rendimiento.

felipe88 07-07-2008 23:16:53

Bueno Jhonny creo que te refieres a esto

Cita:

Empezado por Dmitry Yemanov
Implemented new monitoring table MON$MEMORY_USAGE to track memory pools

La verdad no pude encontrar si esta en la ultima version disponible :cool:

jhonny 07-07-2008 23:22:23

Cita:

Empezado por felipe88 (Mensaje 298794)
Bueno Jhonny creo que te refieres a esto

Bueno, esa es una tabla nueva que están implementando en la versión 2.5, para monitorizar la memoria... lo de los de FlameRobin es otro cuento, pero bueno, me gustaría comentarles que hace poco estuvimos hablando con algunos compañeros del club, acerca de un monitor igual al que mencionas y alcance a crear un par de formularios y un par de datamodulos (Pero por alguna razón que no se cual, se me bajo el entusiasmo :D, pero la idea me parece muy buena), lo único que le falta al archivo adjunto son las consultas, los reportes, definir de que manera mostraremos la información a monitorizar, en fin... le falta todo :D :D :D, de todas formas acá lo coloco a ver, si alguien así sea viendo ese coco vació, se anima y tiene tiempo para hacerlo despegar.

Archivo: http://jhonny.clubdelphi.com/archivos/FBMonitor.zip

felipe88 07-07-2008 23:45:12

Cita:

Empezado por jhonny (Mensaje 298797)
Bueno, esa es una tabla nueva que están implementando en la versión 2.5, para monitorizar la memoria... lo de los de FlameRobin es otro cuento, pero bueno, me gustaría comentarles que hace poco estuvimos hablando con algunos compañeros del club, acerca de un monitor igual al que mencionas y alcance a crear un par de formularios y un par de datamodulos (Pero por alguna razón que no se cual, se me bajo el entusiasmo :D, pero la idea me parece muy buena), lo único que le falta al archivo adjunto son las consultas, los reportes, definir de que manera mostraremos la información a monitorizar, en fin... le falta todo :D :D :D, de todas formas acá lo coloco a ver, si alguien así sea viendo ese coco vació, se anima y tiene tiempo para hacerlo despegar.

Archivo: http://jhonny.clubdelphi.com/archivos/FBMonitor.zip

Bueno ahorraste tiempo, ya creaste los form :D...

La idea es buena claro, vere que puedo adelantar aunque sea de interfaz :rolleyes:... y ver que aceptacion tiene, he de recordar que soy novato nivel -10 :p; la idea es ir acomodando todo a medida que firebird de nuevas opciones.

felipe88 08-07-2008 15:08:57

Hola,

Intente adelantar algo para la idea pero creo que quede en las mismas que tu jhonny, solo espero no perder el impulso :rolleyes::p

En este link dejo algo de lo poco que adelante, la interfaz principal la manejo mediante un TreeView donde se muestren las BD registradas y sus opciones; aun no se como sea mejor guardar las rutas de las BD si mediante un archivo .ini o por el registro

felipe88 09-07-2008 20:11:33

Hola a todos, :)

Bueno he estado tratando de sacar un poco de tiempo para poder trabajar en esta idea (Benditos informes :rolleyes:), aun tengo interrogantes sobre que seria lo esencial o necesario monitorear, por el momento pienso en las transacciones y jugar un poco con lo que nos brindan las tablas del sistema, espero puedan dar buenos aportes...

PD: Algun moderador podria añadir al titulo la palabra Proyecto, gracias :)

felipe88 09-07-2008 20:32:59

Re gracias ;)

Incialmente dentro de lo que tengo proyectado esta lo siguiente

Cita:

1. Transacciones
2. Usuarios
3. Backup
4. Limpiar datos (Aunque no se como seria en este caso :rolleyes:)
5. Reportes
Alguna sugerencia :confused:

felipe88 11-07-2008 17:47:13

:confused:... retomando un poco me quede con una inquietud, cual seria el query para saber el numero de usuarios activos??

jhonny 11-07-2008 18:18:16

Cita:

Empezado por felipe88 (Mensaje 299605)
:confused:... retomando un poco me quede con una inquietud, cual seria el query para saber el numero de usuarios activos??

El siguiente:

Código SQL [-]
 
select distinct MON$USER from MON$ATTACHMENTS

felipe88 11-07-2008 20:47:27

Hey viejo Yonny ;)... gracias.

Y aproposito, en donde puedo encontrar buena documentacion al respecto, he buscado por todas las paginas de Firebird pero hasta ahora no encuentro demasiado que digamos; poco a poco estoy formando la idea aunque llevo cero codigo :D

jhonny 11-07-2008 20:53:21

Cita:

Empezado por felipe88 (Mensaje 299662)
Hey viejo Yonny ;)... gracias.

Y aproposito, en donde puedo encontrar buena documentacion al respecto, he buscado por todas las paginas de Firebird pero hasta ahora no encuentro demasiado que digamos; poco a poco estoy formando la idea aunque llevo cero codigo :D

En la carpeta doc que distribuyen con Firebird 2.1, hay un archivo llamado "README.monitoring_tables.txt", en él encontraras lo necesario ;).

felipe88 12-07-2008 15:09:00

Hola a todos,

Bueno, dado que continuo con la idea y espero lograr algo :rolleyes: he de notar las multiples diferencias entre las tablas disponibles en Firebird; por tal motivo tengo una inquietud que espero me puedan ayudar a resolver (Codigo claro):

1. Como determino si Firebird esta instalado?

2. Como se que version esta instalada, para saber que puedo y no hacer?

Por ahora les tengo estas dos ;):D...

jhonny 12-07-2008 20:19:13

1) En la clave del registro de windows:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FBDBServer_2_0_is1'
Hay una lista de todos los programas instalados en tu maquina:
Pero eso en ultimas no es muy seguro, ya que depende mucho de la forma en como hayan instalado el FB, incluso algunos lo pudieron hacer manualmente, la verdad es que yo no me preocuparía mucho por dicho asunto, pues un usuario que va a usar un software de este tipo, ya debe tener un mínimo de conocimiento al respecto....

2) Eso si es mas seguro, como lo que te preocupa es la estructura entre una versión y la otra de Firebird, pues lo que necesitas es averiguar la versión del ODS(On Disk Structure)...

Por ejemplo, la versión del ODS de Firebird 2.1 es la 11.1 y se averigua, así:
Código SQL [-]
  
select mon$ods_major, mon$ods_minor from mon$database

felipe88 14-07-2008 15:42:19

Bueno jhonny gracias por tu aporte como siempre :)

El primer punto lo solucione por aca, solo verificando si el servicio esta corriendo.
Para el segundo punto bien; pero dado que aplica unicamente para esta version entonces como podria saberlo con anteriores?:confused::confused:... de igual forma estare investigando y manteniendolos al tanto...


La franja horaria es GMT +2. Ahora son las 13:16:41.

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