El 07/11/2012 05:51, Agustin Lopez escribió:
Hola!
Gracias por la respuesta, Fernando.
Pero incido en el problema, que no me lo resuelves.
Me gustaría saber si hay alguna manera de saber qué índice está dañado.
Es raro que Postgres no tenga alguna manera de averiguarlo.
Saludos,
Agustín
El 05/11/2012 15:06, Rodriguez Fernando escribió:
El 30/10/2012 05:12, Agustin Lopez escribió:
Hola a todos!
Tengo una DB en postgresql 9.0.3 que de vez en cuando baja su
rendimiento
de forma notable (la hace inoperativa), por ejemplo tras un corte de
luz o tras
un update masivo. Para solucionar el problema debo reindexar toda la DB
para lo cual necesito varias horas y no es lo ideal. (Todo esto
pasaba también
con versiones anteriores de Postgres).
Las preguntas son:
-Hay alguna forma / herramienta para chequear los indices y sólo
reindexar el que esté mal?
-Hay alguna herramienta para lanzar en paralelo el reindex de la DB?
Gracias,
Agustin
-
Enviado a la lista de correo pgsql-es-ayuda
([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
Si los update masivos tocan campos de indices seria bueno
reorganizarlos, a menos que no sepas que afecta.
En cuanto a las caídas abruptas del sistemas, una solución sería una
ups.
Otra idea podria se configurar que logue las consultas que demoran
mas de un tiempo determinado (log_min_duration_statement)
Te envio un link que encontré para el caso
http://heatware.net/databases/how-to-find-log-slow-queries-postgresql/
proba consultar pg_index
http://www.postgresql.org/docs/9.2/static/catalog-pg-index.html
indisvalid bool If true, the index is currently valid for queries.
False means the index is possibly incomplete: it must still be modified
by INSERT/UPDATE operations, but it cannot safely be used for queries.
If it is unique, the uniqueness property is not true either.
indisready bool If true, the index is currently ready for inserts.
False means the index must be ignored by INSERT/UPDATE operations.
mas datos del catalogo
http://www.postgresql.org/docs/9.2/static/catalogs.html
select a.relname as nombreindice, indisvalid, indisready, b.relname as
nombretabla
from pg_index
inner join pg_class a on (indexrelid= a.oid)
inner join pg_class b on (indrelid=b.oid);
saludos Fernando