Baru-baru ini saya melihat sekeliling pg_stat_user_tables
dan terkejut melihat sejumlah besar pemindaian berurutan pada beberapa tabel spasial saya. Benar saja, tabel-tabel ini tidak memiliki indeks spasial.
Bagaimana saya bisa menemukan semua tabel dengan kolom geometri yang tidak diindeks?
postgis
postgresql
dbaston
sumber
sumber
Jawaban:
Tabel dengan indeks spasial yang hilang dapat ditemukan dengan menanyakan tabel sistem:
sumber
WHERE t.typname IN ('geometry', 'geography') AND t.typtype='b'
? Lihat trac.osgeo.org/gdal/ticket/6896 .t.typtype = 'b'
bagian itu?create table "geometry" (foo text);
memberikanERROR: 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.
Saya telah membuat fungsi yang dapat secara otomatis membuat semua indeks yang hilang. Parameter "simulasikan" memungkinkan untuk mendapatkan daftar indeks spasial yang hilang, tetapi berkinerja tidak CREATE INDEX
Lihat https://gist.github.com/mdouchin/cfa0e37058bcf102ed490bc59d762042
Untuk mendapatkan daftar indeks yang hilang, jalankan:
Untuk membuat indeks yang diperlukan, jalankan:
atau
sumber