Ostatnio się rozglądałem pg_stat_user_tables
i byłem zaskoczony, widząc dużą liczbę sekwencyjnych skanów na niektórych moich tabelach przestrzennych. Rzeczywiście, w tych tabelach brakowało indeksów przestrzennych.
Jak znaleźć wszystkie tabele z nieindeksowaną kolumną geometrii?
postgis
postgresql
dbaston
źródło
źródło
Odpowiedzi:
Tabele z brakującymi indeksami przestrzennymi można znaleźć, sprawdzając tabele systemowe:
źródło
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? Zobacz trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
?create table "geometry" (foo text);
dajeERROR: 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.
Stworzyłem funkcję, która może automatycznie tworzyć wszystkie brakujące indeksy. Parametr „symuluj” pozwala uzyskać listę brakujących indeksów przestrzennych, ale nie wykonuje operacji UTWÓRZ INDEKS
Zobacz https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042
Aby uzyskać listę brakujących indeksów, uruchom:
Aby utworzyć potrzebne indeksy, uruchom:
lub
źródło