Recentemente, eu estava olhando em volta pg_stat_user_tables
e fiquei surpreso ao ver um grande número de varreduras seqüenciais em algumas das minhas tabelas espaciais. Com certeza, essas tabelas estavam com falta de índices espaciais.
Como posso encontrar todas as tabelas com uma coluna de geometria não indexada?
postgis
postgresql
dbaston
fonte
fonte
Respostas:
Tabelas com índices espaciais ausentes podem ser encontradas consultando as tabelas do sistema:
fonte
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? Veja trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
parte disso?create table "geometry" (foo text);
dáERROR: 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.
Eu criei uma função que pode criar automaticamente todos os índices ausentes. Um parâmetro "simular" permite obter a lista dos índices espaciais ausentes, mas não executa CREATE INDEX
Consulte https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042
Para obter a lista de índices ausentes, execute:
Para criar os índices necessários, execute:
ou
fonte