2012/5/28 ruben avila galindo <[email protected]>: > Hola amigos quiciera ver cual es la mejor forma de reindexar todas las > tablas de mi base de datos y si Postgresql puede hacerlo automatico o manual > y en que afectaria en horars de trabajos > o si tiene q hacer en horas donde la BD no esta trabajando. >
usas el comando REINDEX como te indico Carlos, sin embargo ten en cuenta que REINDEX bloquea las tablas que estan siendo procesadas lo que se traduce en que no podras trabajar... hazlo en horas en que no tengas usuarios, si es un servicio 24x7 tendras que programar un mantenimiento o hacerlo de otra forma. la otra forma: crea un indice nuevo con CREATE INDEX CONCURRENTLY con la misma definicion de un indice en mal estado esto no bloquea la tabla pero se demora mas, luego de creado el nuevo indice eliminas el indice viejo (esto si bloquea la tabla pero lo hace por poco tiempo... generalmente) obviamente esto tomara mas tiempo de tu parte y probablemente solo valga la pena para indices que en realidad estan en mal estado. no, no ocurre automaticamente porque como te mencione esto bloquea tablas y no queremos que postgres bloquee algo sin nuestro permiso, verdad? > > Estuve viendo que cuando un Campo es por decir Char(3) Primary Key = A001 te das cuenta que A001 no entra en char(3), verdad? > los Indices son mas rapidos , pero cuando es varchar(3)=A1 como que el > varchar a veces no se regista todo el espacio y por ende cada rato los > indices paran cambiando esto no es cierto char completa con espacios en blanco la cadena por lo que para el 'JAIME' y 'JAIME ' son iguales, es decir ignora los espacios al final que tu hayas ingresado varchar guarda solo lo que tu le pediste que guarde, incluyendo espacios iguales por lo que para el 'JAIME' y 'JAIME ' son distintos (porque ve que el espacio al final hace la diferencia) > y por ende mi Base de Datos es lenta en cierta > momentos. > ahora, quien te dijo que necesitabas reindexar? que crees que solucionaras con eso? (no digo que no soluciones nada, solo quiero que confirmes que no estas golpeando al aire a ver si rompes la piñata) si es posible que char sea ligeramente mas lento que varchar pero debido a que al almacenar mas caracteres el indice se hace mas grande pero si almacenas valores pequeños no creo que notes la diferencia... ahora yo prefiero que PK sean valores enteros que es mas rapido. -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
