diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml
index 09ad0f37b1..4b004076b5 100644
--- a/config/alfresco/bootstrap-context.xml
+++ b/config/alfresco/bootstrap-context.xml
@@ -151,6 +151,7 @@
+
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
index 7e4b49fad3..e906621417 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-RepoTables.sql
@@ -215,6 +215,7 @@ CREATE TABLE alf_node
PRIMARY KEY (id),
UNIQUE KEY store_id (store_id, uuid),
KEY idx_alf_node_del (node_deleted),
+ KEY idx_alf_node_txn_del (transaction_id, node_deleted),
KEY fk_alf_node_acl (acl_id),
KEY fk_alf_node_txn (transaction_id),
KEY fk_alf_node_store (store_id),
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
index 0c2ca1fc38..d45767e66d 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
@@ -195,7 +195,7 @@ CREATE TABLE alf_transaction
PRIMARY KEY (id),
CONSTRAINT fk_alf_txn_svr FOREIGN KEY (server_id) REFERENCES alf_server (id)
);
-CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms);
+CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id);
CREATE INDEX fk_alf_txn_svr ON alf_transaction (server_id);
CREATE SEQUENCE alf_store_seq START WITH 1 INCREMENT BY 1;
@@ -236,6 +236,7 @@ CREATE TABLE alf_node
);
CREATE UNIQUE INDEX store_id ON alf_node (store_id, uuid);
CREATE INDEX idx_alf_node_del ON alf_node (node_deleted);
+CREATE INDEX idx_alf_node_txn_del ON alf_node (transaction_id, node_deleted);
CREATE INDEX fk_alf_node_acl ON alf_node (acl_id);
CREATE INDEX fk_alf_node_txn ON alf_node (transaction_id);
CREATE INDEX fk_alf_node_store ON alf_node (store_id);
diff --git a/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.Dialect/Solr-Tracking.sql b/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.Dialect/Solr-Tracking.sql
new file mode 100644
index 0000000000..8d847fe0f7
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.Dialect/Solr-Tracking.sql
@@ -0,0 +1,25 @@
+--
+-- Title: Update alf_txn table and alf_node indexes to support SOLR tracking
+-- Database: Generic
+-- Since: V4.0 Schema 5023
+-- Author: Andy Hind
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+DROP INDEX idx_alf_txn_ctms;
+CREATE INDEX idx_alf_txn_ctms ON alf_transaction (commit_time_ms, id);
+
+CREATE INDEX idx_alf_node_txn_del ON alf_node (transaction_id, node_deleted);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.0-SolrTracking';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V4.0-SolrTracking', 'Manually executed script upgrade V4.0: Updates for SOLR tracking',
+ 0, 5022, -1, 5023, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.MySQLInnoDBDialect/Solr-Tracking.sql b/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.MySQLInnoDBDialect/Solr-Tracking.sql
new file mode 100644
index 0000000000..9c67c86cff
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.MySQLInnoDBDialect/Solr-Tracking.sql
@@ -0,0 +1,22 @@
+--
+-- Title: Update alf_txn table and alf_node indexes to support SOLR tracking
+-- Database: Generic
+-- Since: V4.0 Schema 5023
+-- Author: Andy Hind
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+CREATE INDEX idx_alf_node_txn_del ON alf_node (transaction_id, node_deleted);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.0-SolrTracking';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V4.0-SolrTracking', 'Manually executed script upgrade V4.0: Updates for SOLR tracking',
+ 0, 5022, -1, 5023, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index 269004b00d..228e8c49a4 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -2979,4 +2979,15 @@
+
+
+
+
+
+
+
+ classpath:alfresco/dbscripts/upgrade/4.0/${db.script.dialect}/Solr-Tracking.sql
+
+
+
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index 166724e79b..31914a944c 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
-version.schema=5022
+version.schema=5023