5

I'm working with large PostGIS tables in QGIS but really only need to do simple visualization and editing the attributes (like change road names, speed limits, etc). The most processing I need to do is just a simple join by attributes between a couple tables. The large datasets are about 400 MB.

Are there ways to speed up things loading the attribute table and rendering the map? If not, are there any other good GIS software designed to handle bigger datasets? Or is it really just an issue of optimizing my network connection and postgres database?

1
  • Creating spatial indexes for each layer will be helpful.
    – dmh126
    Apr 14 '16 at 19:43
5

QGIS + PostGIS should handle a 400 MB dataset without too much grief, give it a try.

One of the most important aspects is to ensure you have a spatial index of the geometry column, e.g.

CREATE INDEX roads_geom_idx ON roads USING gist (geom);

which will allow it to load quicker in QGIS when you zoom into a specific area.

And if you are classifying / querying on attributes, it's a good idea to add regular indexes to these columns too.

2
  • Indexes make querying and rendering okay, but loading the attribute table is still painfully slow. Anything I can do there?
    – wmebane
    May 5 '16 at 0:30
  • Yes, loading the full attribute table in QGIS will take a while, as it is essentially getting the 400 MB minus geometry data from PostgreSQL. With a recent version of QGIS, there is a filter button at the bottom left of the Attribute table. Try changing this to "Show Features Visible On Map", or set a field filter to an attribute of interest. There are a few other tricks to try.
    – Mike T
    May 5 '16 at 1:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.