FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
Eso no son dos ordenadores iguales.
|
#3
|
|||
|
|||
Maquinas virtuales diferentes con mismo hardware
|
#4
|
||||
|
||||
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). |
#5
|
|||
|
|||
31
31 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? |
#6
|
||||
|
||||
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. |
#7
|
||||
|
||||
Cita:
|
#8
|
|||
|
|||
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! |
#9
|
||||
|
||||
Una duda, ¿por qué motivo necesitas usar freeadhoc?
|
|
|
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 |
|