Saya telah memuat sejumlah shapefile menggunakan SPIT (plugin QGIS) ke database PostGIS saya. Lapisan-lapisan ini tidak memiliki Indeks Spasial yang dibuat saat memuat. Saya bertanya-tanya apakah ada cara untuk membuat Indeks Spasial untuk setiap lapisan dalam skema tanpa menulis kueri untuk setiap lapisan. Saya bukan penulis naskah PostGIS yang baik, jadi bantuan apa pun akan sangat dihargai.
Terima kasih banyak, ini terlihat hebat. Saya telah menjalankan ini, tetapi tampaknya ada masalah, ingatlah, ini mungkin karena kurangnya kemampuan saya dalam menulis. Tetapi ketika saya menjalankan pernyataan SELECT saya mendapatkan kesalahan berikut: ERROR: fungsi batchindex (tidak diketahui, karakter bervariasi, karakter bervariasi) tidak ada LINE 1: pilih BatchIndex ('publik', f_table_name, f_geometry_column) ... Saya tidak yakin jika saya menambahkan sesuatu untuk mendapatkan batch, atau jika ini hanya tempat untuk sesuatu yang berbeda. Permintaan CREATE dijalankan tanpa masalah, tetapi tidak ada indeks yang dihasilkan.
Ryan Garnett
Hmm ... Saya tidak yakin apa yang terjadi di sana. Fakta bahwa ia berpikir parameter pertama yang Anda lewati adalah tipe unknowndaripada character varyingmematikan lonceng alarm, tapi saya tidak bisa melihat di mana ia memiliki masalah. Saya akan memikirkannya, sedangkan guru PostgreSQL di luar sana suka mencobanya? :)
MerseyViking
2
Jawaban teratas tidak akan berfungsi jika Anda memiliki tampilan dengan geometri. Mengubah pernyataan 'JIKA' untuk memeriksa bahwa Anda tidak mencoba membangun indeks pada tampilan memecahkan masalah itu. Jika Anda ingin menggunakan tampilan dengan geometri, ganti baris ini:
IF i_exists =0
dengan ini:
IF i_exists =0AND tn IN(SELECT table_name, table_type FROM information_schema.tables WHERE table_type ='BASE TABLE')
unknown
daripadacharacter varying
mematikan lonceng alarm, tapi saya tidak bisa melihat di mana ia memiliki masalah. Saya akan memikirkannya, sedangkan guru PostgreSQL di luar sana suka mencobanya? :)Jawaban teratas tidak akan berfungsi jika Anda memiliki tampilan dengan geometri. Mengubah pernyataan 'JIKA' untuk memeriksa bahwa Anda tidak mencoba membangun indeks pada tampilan memecahkan masalah itu. Jika Anda ingin menggunakan tampilan dengan geometri, ganti baris ini:
dengan ini:
sumber
katakanlah meja Anda 'bangunan', Anda dapat mengindeks menggunakan GIST
Apakah itu yang Anda cari?
sumber