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 07-05-2015
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Ambos sistemas usan firebird 2.5 Superclassic, se encuentran en el mismo servidor (los 2 servidores y el equipo de pruea estan virtualizados con VMware esxi, con tarjetas de red de 1gbps).

Os pongo un ejemplo de las consultas:

select * from wie_intern_viajes_sin_obs
where codigo > 0


------ QUERY PERFORMANCE ------
Prepare : 31 ms
Execute : 31 ms
Avg fetch time: 0 ms

----------- MEMORY ------------
Current : 66,93 MB
Max : 67,02 MB
Buffers : 4096

Tiempo 985ms


En ambos sistemas esta consulta suelen ser tiempos muy parecidos

select * from wie_intern_viajes_sin_obs
where codigo > 0
and ano_viaje=2015

------ QUERY PERFORMANCE ------
Prepare : 16 ms
Execute : 16 ms
Avg fetch time: 14 ms

----------- MEMORY ------------
Current : 67,00 MB
Max : 67,09 MB
Buffers : 4096


Ubuntu : 2500ms
Windows: 1550ms

Este es un ejemplo de las consultas que como podeis ver en linux tarda bastante más pero hay otras consultas donde windows llega a 3000ms como máximo y linux de 8000ms no baja
La base de datos estaba funcionando sobre una version 1.5 y acabamos de realizar la migración para la 2.5
Responder Con Cita
  #2  
Antiguo 07-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.076
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Sergio-ponchito Ver Mensaje
Ambos sistemas usan firebird 2.5 Superclassic, se encuentran en el mismo servidor (los 2 servidores y el equipo de pruea estan virtualizados con VMware esxi, con tarjetas de red de 1gbps).
Eso no son dos ordenadores iguales.
Responder Con Cita
  #3  
Antiguo 07-05-2015
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Eso no son dos ordenadores iguales.
Maquinas virtuales diferentes con mismo hardware
Responder Con Cita
  #4  
Antiguo 07-05-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.737
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Otra cosa que se me ocurre es que modifiques el tamaño de página de la base firebird.
Normalmente debería ser igual al tamaño del cluster del disco.
Esto influirá sobre todo si el tamaño de la base de datos es grande. Con esto me refiero a muchos registros por tabla, no a blobs.

De todos modos, no entiendo de dónde sacas esos números.
3000ms y 8000ms son 3 y 8 segundos respectivamente.
La información de las ejecuciones que muestras en el hilo anterior es aproximadamente mil veces menor (31ms en el primer caso)

Hay varios tiempos que deberías tener en cuenta:
1 - El de preparado
2 - El de ejecucion
3 - El de obtención de datos.

Si pides algo simple, pero la tabla tiene 1 millon de registros, el tiempo de preparado y ejecución será rápido pero el de obtención de datos no (1 millon de registro x tamaño del registro pasando por la red).
Responder Con Cita
  #5  
Antiguo 07-05-2015
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
1 - El de preparado
31
Cita:
Empezado por duilioisola Ver Mensaje
2 - El de ejecucion
31
Cita:
Empezado por duilioisola Ver Mensaje
3 - El de obtención de datos.
985

¿Lo que no entiendo por que al introducir un where, que siempre te va a devolver menos registros, como puede tardas más que sin tener un where?, y ya lo que me extraña es que algunas consultas el tiempo sea el mismo que haciendolo desde windows server pero en otras tarde hasta 3 veces mas?
Responder Con Cita
  #6  
Antiguo 07-05-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.737
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Vale, pero seguimos sin tener datos completos:
Has puesto la respuesta al tiempo, pero no sabemos de qué:
¿a qué consulta? (con/sin where)
¿en que sistema operativo? (win/linux)
¿qué es lo que devuelve? (nro de registros, tamaño, blobs, ...)

Además de esto, no sabemos que plan utiliza en cada caso (con/sin where, Win/Linux).
Tampoco nos dices si la cosa cambia cuando modificas el tamaño de página de la base de datos.

Todo esto, suponiendo que te conectas a ambas bases de datos de la misma manera (TCP / Local) y que las bases son iguales (restauradas de un mismo FBK).
Windos: IP:C:\Path\BASE.FDB
Linux: OP:/path/base.fdb

También debes considerar lo que he dicho antes. Debes hacer la consulta de forma repetida. La primera vez tardará, pero las siguientes te dará una idea aproximada de lo que tarda cada consulta. El servidor debe preparar la conexión, montando cache, reservando memoria y haciendo las verificaciones necesarias.

Finalmente, habría que ver qué mas está haciendo el servidor en cada caso (Firewall, Servicios activos, antivirus, etc.)

Cuando tengas todas las pruebas hechas y puestas en una tabla, podrás comparar siempre y cuando sean datos comparables. Por ejemplo, no es lo mismo una consulta en modo local que una a traves de TCP/IP, aunque los ordenadores sean iguales.

Bueno... dejo aquí esta parrafada porque creo que te faltan hacer muchas pruebas antes de poder decidir qué servidor elegirás.
Responder Con Cita
  #7  
Antiguo 07-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.076
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por duilioisola Ver Mensaje
Vale, pero seguimos sin tener datos completos:
Has puesto la respuesta al tiempo, pero no sabemos de qué:
¿a qué consulta? (con/sin where)
¿en que sistema operativo? (win/linux)
¿qué es lo que devuelve? (nro de registros, tamaño, blobs, ...)
Además de esto, no sabemos que plan utiliza en cada caso (con/sin where, Win/Linux).
Tampoco nos dices si la cosa cambia cuando modificas el tamaño de página de la base de datos.
Todo esto, suponiendo que te conectas a ambas bases de datos de la misma manera (TCP / Local) y que las bases son iguales (restauradas de un mismo FBK).
Windos: IP:C:\Path\BASE.FDB
Linux: OP:/path/base.fdb
También debes considerar lo que he dicho antes. Debes hacer la consulta de forma repetida. La primera vez tardará, pero las siguientes te dará una idea aproximada de lo que tarda cada consulta. El servidor debe preparar la conexión, montando cache, reservando memoria y haciendo las verificaciones necesarias.
Finalmente, habría que ver qué mas está haciendo el servidor en cada caso (Firewall, Servicios activos, antivirus, etc.)
Cuando tengas todas las pruebas hechas y puestas en una tabla, podrás comparar siempre y cuando sean datos comparables. Por ejemplo, no es lo mismo una consulta en modo local que una a traves de TCP/IP, aunque los ordenadores sean iguales.
Bueno... dejo aquí esta parrafada porque creo que te faltan hacer muchas pruebas antes de poder decidir qué servidor elegirás.
Exacto, y añadir también qué componentes o útiles está usando, qué configuraciones, si la base de datos tiene índices adecuados, si son querys "directos" o filtros tipo "ADO" que se trae todos los registros, etc. etc. etc. ... ... ...
Responder Con Cita
  #8  
Antiguo 07-05-2015
Sergio-ponchito Sergio-ponchito is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 14
Poder: 0
Sergio-ponchito Va por buen camino
Al parecer el fallo estaba en las udf 'freeadhoc', he cambiado las vistas usando las funciones propias de firebird y el cambio ha sido enorme de 8 segundos a 500 ms.
Muchas gracias por la ayuda a todos, saludos!
Responder Con Cita
  #9  
Antiguo 07-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.076
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Una duda, ¿por qué motivo necesitas usar freeadhoc?
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ubuntu Server: ¿Actualizaciones Automaticas? josemmerida Linux 4 06-08-2013 17:22:29
Rendimiento Firebird SS 2.5 en Ubuntu server 12.04 LTS zombiezea2005 Firebird e Interbase 2 18-02-2013 16:13:02
no arranca el CD ubuntu server... gasparsi Linux 3 17-03-2009 18:00:48
Dudas acerca de lazarus en VM Ubuntu diegofhernando Lazarus, FreePascal, Kylix, etc. 3 11-09-2008 17:31:20
Instalar firebird 2.0 en Ubuntu server 7.10 Chris Firebird e Interbase 11 10-01-2008 00:00:11


La franja horaria es GMT +2. Ahora son las 12:49:12.


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