From ae452c4f4e434e27a947a040834344477dc9257b Mon Sep 17 00:00:00 2001 From: dbs Date: Wed, 18 Aug 2010 02:09:17 +0000 Subject: [PATCH] Create indexes on some Vandelay tables to speed up retrieval and delete operations git-svn-id: svn://svn.open-ils.org/ILS/trunk@17236 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +- Open-ILS/src/sql/Pg/012.schema.vandelay.sql | 4 ++++ .../Pg/upgrade/0374.schema.vandelay_indices.sql | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0374.schema.vandelay_indices.sql diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 3106a8e8c3..66c947c37f 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -68,7 +68,7 @@ CREATE TABLE config.upgrade_log ( install_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() ); -INSERT INTO config.upgrade_log (version) VALUES ('0373'); -- phasefx +INSERT INTO config.upgrade_log (version) VALUES ('0374'); -- dbs CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/012.schema.vandelay.sql b/Open-ILS/src/sql/Pg/012.schema.vandelay.sql index 5a8af42c3d..41372e2374 100644 --- a/Open-ILS/src/sql/Pg/012.schema.vandelay.sql +++ b/Open-ILS/src/sql/Pg/012.schema.vandelay.sql @@ -80,6 +80,7 @@ CREATE TABLE vandelay.queued_bib_record ( imported_as INT REFERENCES biblio.record_entry (id) DEFERRABLE INITIALLY DEFERRED ) INHERITS (vandelay.queued_record); ALTER TABLE vandelay.queued_bib_record ADD PRIMARY KEY (id); +CREATE INDEX queued_bib_record_queue_idx ON vandelay.queued_bib_record (queue); CREATE TABLE vandelay.queued_bib_record_attr ( id BIGSERIAL PRIMARY KEY, @@ -87,6 +88,7 @@ CREATE TABLE vandelay.queued_bib_record_attr ( field INT NOT NULL REFERENCES vandelay.bib_attr_definition (id) DEFERRABLE INITIALLY DEFERRED, attr_value TEXT NOT NULL ); +CREATE INDEX queued_bib_record_attr_record_idx ON vandelay.queued_bib_record_attr (record); CREATE TABLE vandelay.bib_match ( id BIGSERIAL PRIMARY KEY, @@ -1181,6 +1183,7 @@ CREATE TABLE vandelay.queued_authority_record ( imported_as INT REFERENCES authority.record_entry (id) DEFERRABLE INITIALLY DEFERRED ) INHERITS (vandelay.queued_record); ALTER TABLE vandelay.queued_authority_record ADD PRIMARY KEY (id); +CREATE INDEX queued_authority_record_queue_idx ON vandelay.queued_authority_record (queue); CREATE TABLE vandelay.queued_authority_record_attr ( id BIGSERIAL PRIMARY KEY, @@ -1188,6 +1191,7 @@ CREATE TABLE vandelay.queued_authority_record_attr ( field INT NOT NULL REFERENCES vandelay.authority_attr_definition (id) DEFERRABLE INITIALLY DEFERRED, attr_value TEXT NOT NULL ); +CREATE INDEX queued_authority_record_attr_record_idx ON vandelay.queued_authority_record_attr (record); CREATE TABLE vandelay.authority_match ( id BIGSERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/0374.schema.vandelay_indices.sql b/Open-ILS/src/sql/Pg/upgrade/0374.schema.vandelay_indices.sql new file mode 100644 index 0000000000..0665ffe5b4 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0374.schema.vandelay_indices.sql @@ -0,0 +1,14 @@ +-- No transaction is required +INSERT INTO config.upgrade_log (version) VALUES ('0374'); -- dbs + +-- Triggers on the vandelay.queued_*_record tables delete entries from +-- the associated vandelay.queued_*_record_attr tables based on the record's +-- ID; create an index on that column to avoid sequential scans for each +-- queued record that is deleted +CREATE INDEX queued_bib_record_attr_record_idx ON vandelay.queued_bib_record_attr (record); +CREATE INDEX queued_authority_record_attr_record_idx ON vandelay.queued_authority_record_attr (record); + +-- Avoid sequential scans for queue retrieval operations by providing an +-- index on the queue column +CREATE INDEX queued_bib_record_queue_idx ON vandelay.queued_bib_record (queue); +CREATE INDEX queued_authority_record_queue_idx ON vandelay.queued_authority_record (queue); -- 2.43.2