Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance improvement using OGR_L_SetIgnoredFields #55

Open
pramsey opened this issue Apr 21, 2016 · 0 comments
Open

Performance improvement using OGR_L_SetIgnoredFields #55

pramsey opened this issue Apr 21, 2016 · 0 comments

Comments

@pramsey
Copy link
Owner

pramsey commented Apr 21, 2016

By applying OGR_L_SetIgnoredFields to the OGR Layer before reading, we can dramatically reduce the amount of data pulled over the wire in response to a particular query target list.

If the query is just:

SELECT name FROM thetable;

Then the backend should not be pulling all the fields over the wire, but that's the default OGR behaviour and our default too.

There is a knock-on efficiency to this work for update support, in that every update starts with a query. That is,

UPDATE thetable SET name = 'bar' WHERE age = 20;

will first run

SELECT name FROM thetable WHERE age = 20;

to get a list of candidate records. Those records are then iterated on to apply the update back to the foreign source. Without using ignored fields, we have to pull all the data in those records back, even though we're only updating the name column.

This will require careful updates to all functionality to use only the requested fields in slot handling for both read and write.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant