Increase Overlay Speed for Standard Identifiers
authorDan Wells <dbw2@calvin.edu>
Thu, 30 Aug 2012 19:26:15 +0000 (15:26 -0400)
committerDan Wells <dbw2@calvin.edu>
Tue, 4 Sep 2012 21:18:39 +0000 (17:18 -0400)
commita9f8d2c6c2dd143be427f6281e93447f9e69bf10
tree5874282e5bfdd5fac0a4cfd7383cf0029ba0ff3b
parent0a2007b4efb151e5221c653f217869eec1b2b80e
Increase Overlay Speed for Standard Identifiers

Due to an inefficient query order and a confused query planner,
some overlay matching can end up going abysmally slow.  See LP
bug #1024095 for elaboration on the issue.

This commit reorders the joins as originally suggested by Lebbeous,
then adds a specific index to coax the query planner into making the
best choices.  The example index here only targets the 02x identifier
fields, so other tag/subfield/substring(value) indexes will likely
be necessary for maximum benefit when matching on other fields
(e.g. 010).

These changes combined with the previous commit which replaces 'LIKE
ANY' with 'LIKE (... OR ...)' has shown great promise in testing.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/sql/Pg/012.schema.vandelay.sql
Open-ILS/src/sql/Pg/030.schema.metabib.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.vandelay.import-match-no-like-any.sql