10 votos

Encontrar tablas PostGIS que faltan índices?

Recientemente estuve buscando en pg_stat_user_tables y me sorprendió ver un gran número de escaneos secuenciales en algunas de mis tablas espaciales. Efectivamente, en estas tablas faltaban índices espaciales.

¿Cómo puedo encontrar todas las tablas con una columna de geometría no indexada?

11voto

MBCook Puntos 8316

Las tablas con los índices espaciales que faltan se pueden encontrar consultando las tablas del sistema:

 SELECT g.* 
FROM 
  (SELECT 
     n.nspname, 
     c.relname, 
     c.oid AS relid, 
     a.attname, 
     a.attnum 
   FROM pg_attribute a 
   INNER JOIN pg_class c ON (a.attrelid=c.oid)
   INNER JOIN pg_type t ON (a.atttypid=t.oid)
   INNER JOIN pg_namespace n ON (c.relnamespace=n.oid) 
   WHERE t.typname='geometry' 
   AND   c.relkind='r'
 ) g 
LEFT JOIN pg_index i ON (g.relid = i.indrelid AND g.attnum = ANY(i.indkey)) 
WHERE i IS NULL;
 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X