on Software

Database Priority

23 Jan 2016

Smallworld™ Geometry has priority to group together what is likely to be used together. Priority can be set at design time. There is value in maintaining sensible priority as it can make your app faster.

The documentation in “Performance in Core Spatial Technology” under “Technical FAQs” has an article on database priority. It has superb explanations on the benefits. Would be good if they could be included in the core product docs or be otherwise made available more easily. In the standard core product docs there is documentation on how to use the priority_analyser.

The product documentation has all the code snippets - no need to repeat that here. For trying it out its best to have a real customer database. Applying newly calculated priority might best be done when there are no post-able subalternatives, to avoid any runaway priority: a change in priority means means every record in the database is touched. To apply new priority to a database there are other preconditions, read the docs.

The main benefit I got out of running the analyser is the following line, printed after inspection of the whole database:

The GLOBAL ‘corrupt_geometry’ now contains n corrupt geometries …

That’s news.

No wonder there are prim errors all over the place.

I got rid of them and put it down as an annual task to run the priority_analysier on the customers database.