diff --git a/server/app/core/rich_schemas.py b/server/app/core/rich_schemas.py
index 9696f68e29d8ed091cd1b460bba16f8eca6a9729..1b21e5b5feba0bd52983d649c646282fbd1c2bd2 100644
--- a/server/app/core/rich_schemas.py
+++ b/server/app/core/rich_schemas.py
@@ -14,6 +14,7 @@ class RichSchema(ma.SQLAlchemySchema):
         strict = True
         load_instance = True
         include_relationships = True
+        ordered = False
 
 
 class QuestionSchemaRich(RichSchema):
diff --git a/server/app/core/schemas.py b/server/app/core/schemas.py
index 10c1dfc1c697c81e15b25085133cdabb4151cd59..ae32121d7a42557ab9757433816506f88bc17eb0 100644
--- a/server/app/core/schemas.py
+++ b/server/app/core/schemas.py
@@ -13,6 +13,7 @@ class BaseSchema(ma.SQLAlchemySchema):
         strict = True
         load_instance = False
         include_relationships = False
+        ordered = False
 
 
 class IdNameSchema(BaseSchema):
diff --git a/server/app/database/controller/get.py b/server/app/database/controller/get.py
index ac59cd231eca130375b0990513d91beb65f2f904..2b85abed30e143c28e7ec7fe319eb08384236296 100644
--- a/server/app/database/controller/get.py
+++ b/server/app/database/controller/get.py
@@ -19,7 +19,7 @@ from app.database.models import (
     User,
 )
 from sqlalchemy import func
-from sqlalchemy.orm import joinedload
+from sqlalchemy.orm import joinedload, subqueryload
 from sqlalchemy.orm.util import with_polymorphic
 
 
@@ -311,15 +311,15 @@ def component_list(competition_id, slide_id):
 def competition(competition_id):
     """ Get Competition and all it's sub-entities. """
 
-    os1 = joinedload(Competition.slides).joinedload(Slide.components)
-    os2 = joinedload(Competition.slides).joinedload(Slide.questions).joinedload(Question.alternatives)
-    ot = joinedload(Competition.teams).joinedload(Team.question_alternative_answers)
-    ot1 = joinedload(Competition.teams).joinedload(Team.question_scores)
+    join_component = joinedload(Competition.slides).subqueryload(Slide.components)
+    join_alternatives = joinedload(Competition.slides).joinedload(Slide.questions).joinedload(Question.alternatives)
+    join_question_alternative_answer = joinedload(Competition.teams).joinedload(Team.question_alternative_answers)
+    join_question_score = joinedload(Competition.teams).joinedload(Team.question_scores)
     return (
         Competition.query.filter(Competition.id == competition_id)
-        .options(os1)
-        .options(os2)
-        .options(ot)
-        .options(ot1)
+        .options(join_component)
+        .options(join_alternatives)
+        .options(join_question_alternative_answer)
+        .options(join_question_score)
         .first()
     )
diff --git a/server/configmodule.py b/server/configmodule.py
index e38c4e04cf1b90ffff4edbe0cbcffffb347c5b4a..25978d378ee2e027730f91b7f025bb0080768e38 100644
--- a/server/configmodule.py
+++ b/server/configmodule.py
@@ -19,6 +19,7 @@ class Config:
     SQLALCHEMY_ECHO = False
     USER_LOGIN_LOCKED_ATTEMPTS = 12
     USER_LOGIN_LOCKED_EXPIRES = timedelta(hours=3)
+    JSON_SORT_KEYS = False
 
 
 class DevelopmentConfig(Config):