Kürzlich habe ich mich umgesehen pg_stat_user_tables
und war überrascht, auf einigen meiner räumlichen Tabellen eine hohe Anzahl aufeinanderfolgender Scans zu sehen. Sicher genug, diesen Tabellen fehlten räumliche Indizes.
Wie finde ich alle Tabellen mit einer nicht indizierten Geometriespalte?
postgis
postgresql
dbaston
quelle
quelle
Antworten:
Tabellen mit fehlenden räumlichen Indizes können durch Abfragen der Systemtabellen gefunden werden:
quelle
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? Siehe trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
Stück erklären ?create table "geometry" (foo text);
gibtERROR: 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.
Ich habe eine Funktion erstellt, die automatisch alle fehlenden Indizes erstellen kann. Ein "simulieren" -Parameter ermöglicht das Abrufen der Liste der fehlenden räumlichen Indizes, führt jedoch keinen CREATE INDEX aus
Siehe https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042
Führen Sie Folgendes aus, um die Liste der fehlenden Indizes abzurufen:
Führen Sie Folgendes aus, um die erforderlichen Indizes zu erstellen:
oder
quelle