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 641d5b3719..5cfc55fad1 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
@@ -247,7 +247,7 @@ CREATE TABLE alf_child_assoc
assoc_index INTEGER,
PRIMARY KEY (id),
UNIQUE KEY parent_node_id (parent_node_id, type_qname_id, child_node_name_crc, child_node_name),
- KEY fk_alf_cass_pnode (parent_node_id),
+ KEY idx_alf_cass_pnode (parent_node_id, assoc_index, id),
KEY fk_alf_cass_cnode (child_node_id),
KEY fk_alf_cass_tqn (type_qname_id),
KEY fk_alf_cass_qnns (qname_ns_id),
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
index d4e63b9a9b..2d16638088 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
@@ -966,9 +966,11 @@
child_node_name
-
+
parent_node_id
+ assoc_index
+ 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 8e55e78e3e..0cb92349d1 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
@@ -269,7 +269,7 @@ CREATE TABLE alf_child_assoc
CONSTRAINT fk_alf_cass_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id)
);
CREATE UNIQUE INDEX parent_node_id ON alf_child_assoc (parent_node_id, type_qname_id, child_node_name_crc, child_node_name);
-CREATE INDEX fk_alf_cass_pnode ON alf_child_assoc (parent_node_id);
+CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id);
CREATE INDEX fk_alf_cass_cnode ON alf_child_assoc (child_node_id);
CREATE INDEX fk_alf_cass_tqn ON alf_child_assoc (type_qname_id);
CREATE INDEX fk_alf_cass_qnns ON alf_child_assoc (qname_ns_id);
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
index e60b92a535..36baa01577 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
@@ -1008,9 +1008,11 @@
child_node_id
-
+
parent_node_id
+ assoc_index
+ id
diff --git a/config/alfresco/dbscripts/db-schema-context.xml b/config/alfresco/dbscripts/db-schema-context.xml
index 462a3036ab..9b5601c872 100644
--- a/config/alfresco/dbscripts/db-schema-context.xml
+++ b/config/alfresco/dbscripts/db-schema-context.xml
@@ -90,7 +90,8 @@
-
+
+
diff --git a/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql
new file mode 100644
index 0000000000..c8d953c099
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.MySQLInnoDBDialect/ChildAssoc-OrderBy.sql
@@ -0,0 +1,24 @@
+--
+-- Title: Add new index to alf_child_assoc
+-- Database: MySQL
+-- Since: V4.1 Schema 5123
+-- Author: Alex Mukha
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+-- MNT-9053 : Alfresco site listings cause high CPU usage on database server
+
+DROP INDEX fk_alf_cass_pnode ON alf_child_assoc;
+CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.1-ChildAssoc-OrderBy';
+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.1-ChildAssoc-OrderBy', 'MNT-9053 : Alfresco site listings cause high CPU usage on database server',
+ 0, 6032, -1, 6033, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file
diff --git a/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql
new file mode 100644
index 0000000000..1a5a72e9da
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/4.1/org.hibernate.dialect.PostgreSQLDialect/ChildAssoc-OrderBy.sql
@@ -0,0 +1,24 @@
+--
+-- Title: Add new index to alf_child_assoc
+-- Database: PostgreSQL
+-- Since: V4.1 Schema 5123
+-- Author: Alex Mukha
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+-- MNT-9053 : Alfresco site listings cause high CPU usage on database server
+
+DROP INDEX fk_alf_cass_pnode;
+CREATE INDEX idx_alf_cass_pnode ON alf_child_assoc (parent_node_id, assoc_index, id);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.1-ChildAssoc-OrderBy';
+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.1-ChildAssoc-OrderBy', 'MNT-9053 : Alfresco site listings cause high CPU usage on database server',
+ 0, 6032, -1, 6033, 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 e14fa49035..95102d6e88 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -3424,7 +3424,7 @@
classpath:alfresco/dbscripts/upgrade/4.1/${db.script.dialect}/rename-constraint-activiti.sql
-
+
@@ -3630,4 +3630,15 @@
classpath:alfresco/dbscripts/upgrade/4.2/${db.script.dialect}/drop-AVM-index.sql
+
+ patch.db-V4.1-ChildAssoc-OrderBy
+ patch.schemaUpgradeScript.description
+ 0
+ 6032
+ 6033
+
+ classpath:alfresco/dbscripts/upgrade/4.1/${db.script.dialect}/ChildAssoc-OrderBy.sql
+
+
+
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index 59db733e05..f312313c8f 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -23,4 +23,4 @@ version.build=r@scm-revision@-b@build-number@
# Schema number
-version.schema=6032
+version.schema=6033