Recientemente estuve mirando alrededor pg_stat_user_tables
y me sorprendió ver un gran número de escaneos secuenciales en algunas de mis tablas espaciales. Efectivamente, a estas tablas les faltaban índices espaciales.
¿Cómo puedo encontrar todas las tablas con una columna de geometría no indexada?
postgis
postgresql
dbaston
fuente
fuente
Respuestas:
Las tablas con índices espaciales faltantes se pueden encontrar consultando las tablas del sistema:
fuente
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? Ver trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
parte de eso?create table "geometry" (foo text);
daERROR: type "geometry" already exists HINT: A relation has an associated type of the same name, so you must use a name that doesn't conflict with any existing type.
He creado una función que puede crear automáticamente todos los índices que faltan. Un parámetro "simular" permite obtener la lista de los índices espaciales faltantes, pero no realiza CREATE INDEX
Ver https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042
Para obtener la lista de índices faltantes, ejecute:
Para crear los índices necesarios, ejecute:
o
fuente