Недавно я огляделся pg_stat_user_tables
и был удивлен, увидев большое количество последовательных сканирований на некоторых из моих пространственных таблиц. Конечно, в этих таблицах отсутствовали пространственные индексы.
Как найти все таблицы с неиндексированным столбцом геометрии?
postgis
postgresql
dbaston
источник
источник
Ответы:
Таблицы с отсутствующими пространственными индексами можно найти, запросив системные таблицы:
источник
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? См. Trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
это?create table "geometry" (foo text);
дает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.
Я создал функцию, которая может автоматически создавать все отсутствующие индексы. Параметр «имитация» позволяет получить список отсутствующих пространственных индексов, но не выполняет CREATE INDEX.
См. Https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042.
Чтобы получить список отсутствующих индексов, запустите:
Чтобы создать необходимые индексы, запустите:
или
источник