Roberto Podria ser como mencionas la degradacion del raid. si es linux si es por software (el raid) entonces cat /proc/mdstat si en alguno te tira un _U quiere decir que una unidad esta caida se puede cambiar con raid10 y se recupera- salu2 mdc
2011/8/30 motum hesa <mot...@gmail.com> > Hola disculpen la molestia nuevamente, he estado tratando de optimizar > una consulta que ya habia optimizado pero el cliente me aviso que > estaba tardando demasiado, lo raro de el caso es que la misma base de > datos la respalde y la desplegue un par de semanas atras en un > servidor de pruebas, donde se estan insertando los mismos registros > diariamente, en el servidor de produccion ( server 1) la consulta > tarda mas de 170 segundos en realizarse mientras en el servidor de > pruebas ( server 2) tarda 2 o 3 segundos... hice un explain analyze en > la consulta y despues de revizarla me doy cuenta que por alguna razon > en el server 1 el indice que tengo sobre un timestamp no se esta > usando, hice un backup del esquema y lo compare con el de server 1 y > la estructura es la misma ( solo habia una funcion nueva en el server > 2 pero no es relevante para la consulta). Hice otra prueba para ver si > es por la configuracion de hardware donde server 1 esta como sigue: > > 2 Xeon a 2 Ghz > 6Gb RAM > 150 GB SATA a 10Krpm X 4 Disco duro en RAID 10 > Freebsd 8.1 > Postgres 8.4.4 > > el server 2 esta como sigue: > > 1 Xeon a 2 Ghz > 8 GB RAM > 300 GB a 7.2K rpm Disco duro sin RAID > Freebsd 8.1 > Postgres 8.4.4 > > Y los dos servidores de postgres han sido tuneados para usar los > recursos del sistema. Entre las posibles opciones se penso que un > disco del Arrglo RAID 10 pudiera estar fallando o tal vez se requiere > mas memoria para la consulta ( La tabla tiene mas de 30M de > registros), por lo que en un servidor que tengo para otras > aplicaciones mas simples tengo un postgres y lo use para hacer un > respaldo del server 1 y del server 2 y los desplege en este server 3: > > Xeon 2 GHz > 2 GB RAm > 150 GB x 2 a 7.2K rmp en RAID 1 > Freebsd 8 > Postgres 8.4.2 > > Donde el resultado es el mismo bdserver1 180segundos la consulta y > dbserver2 5 segundo la consulta. Ya Recree el indice que me hace falta > que se use, hice vacuum, vacuum analyze, reindex y nada no se mas > puedo hacer, espero puedan ayudarme, la consulta es la siguiente: > > SELECT DE.unitno, DE.entrandosaliendo, DE.fechacreacion, > DE.lat, DE.lng, DE.odometrototal, > DE.odometrototal as copodo, DE.combustibletotal, > TE.nombre, TE.img, > TE.ops, EA.valor, EF.descripcion, > EF.fault_codes, EF.tipo, EM.descripcion as desmssg, > DE.pos_gps > FROM (select * from datosentrada_his where unitno='111' and > flota='EMPRESA1' and fechacreacion between '07/13/2011 05:00' and > '07/15/2011 04:59' ) AS DE > LEFT JOIN entradafallas AS EF USING(importacionid) > LEFT JOIN entradaalarma AS EA USING(importacionid) > LEFT JOIN entradamensajes AS EM USING(importacionid) > LEFT JOIN tipoevento AS TE ON EA.tipo = TE.tipo ORDER BY > DE.fechacreacion ASC > > Si es necesario les puedo enviar el resultado de los explain analyze > que realice.. Espero puedan ayudarme... ya que he leido todo lo que he > encontrado y nada. mi principal duda es por que en una db si se usa el > indice y en la otra no... > > > > Roberto Campos > - > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org > ) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda >