diff --git a/src/services/consumption.service.ts b/src/services/consumption.service.ts
index e929762966bd32633c7d305d806d4fda35464ad5..48fb3f060614ce28957d46b43270676d3fbbdcdc 100644
--- a/src/services/consumption.service.ts
+++ b/src/services/consumption.service.ts
@@ -564,6 +564,7 @@ export default class ConsumptionDataManager {
   ): Promise<DataloadEntity[] | EnedisMonthlyAnalysisData[] | null> {
     const query: QueryDefinition = Q(doctype)
       .where({})
+      .indexFields(['year', 'month'])
       .sortBy([{ year: 'asc' }, { month: 'asc' }])
       .limitBy(1)
     const data = await this._client.query(query)
@@ -575,8 +576,11 @@ export default class ConsumptionDataManager {
   ): Promise<DataloadEntity | null> {
     const query: QueryDefinition = Q(doctype)
       .where({
-        price: {
-          $exists: false,
+        year: {
+          $gt: null,
+        },
+        month: {
+          $gt: null,
         },
       })
       .partialIndex({
diff --git a/src/services/ecogesture.service.ts b/src/services/ecogesture.service.ts
index b7e0ae588ca8bcf707310532dab4f50aa10bfdb1..0420aa5094fe95e39671618f3433766c7a17b709 100644
--- a/src/services/ecogesture.service.ts
+++ b/src/services/ecogesture.service.ts
@@ -121,11 +121,18 @@ export default class EcogestureService {
     if (seasonFilter && seasonFilter !== Season.NONE) {
       query = query
         .where({ season: { $ne: seasonFilter } })
+        .indexFields(['season'])
         .sortBy([{ season: 'desc' }])
     } else if (orderByID) {
-      query = query.where({}).sortBy([{ _id: 'asc' }])
+      query = query
+        .where({})
+        .indexFields(['_id'])
+        .sortBy([{ _id: 'asc' }])
     } else {
-      query = query.where({}).sortBy([{ season: 'desc' }])
+      query = query
+        .where({})
+        .indexFields(['season'])
+        .sortBy([{ season: 'desc' }])
     }
 
     const { data: ecogestures }: QueryResult<Ecogesture[]> =
@@ -136,6 +143,7 @@ export default class EcogestureService {
         await this._client.query(
           Q(ECOGESTURE_DOCTYPE)
             .where({ season: { $eq: seasonFilter } })
+            .indexFields(['season'])
             .sortBy([{ season: 'asc' }])
         )
       return [...ecogesturesWithSeason, ...ecogestures]
diff --git a/src/services/enedisMonthlyAnalysisData.service.ts b/src/services/enedisMonthlyAnalysisData.service.ts
index 70af4e00a46a9e7a73bb58922b001a60d9ac797c..0eff9590f3fb55bb6819be5b1e2624a3aa36e0e6 100644
--- a/src/services/enedisMonthlyAnalysisData.service.ts
+++ b/src/services/enedisMonthlyAnalysisData.service.ts
@@ -49,6 +49,7 @@ export default class EnedisMonthlyAnalysisDataService {
   > {
     const query: QueryDefinition = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE)
       .where({})
+      .indexFields(['year', 'month'])
       .sortBy([{ year: 'desc' }, { month: 'desc' }])
       .limitBy(1)
     const data = await this._client.query(query)
@@ -115,6 +116,7 @@ export default class EnedisMonthlyAnalysisDataService {
   ): Promise<EnedisMonthlyAnalysisData[]> {
     const query: QueryDefinition = Q(ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE)
       .where({ year: year, month: month })
+      .indexFields(['year', 'month'])
       .sortBy([{ year: 'desc' }, { month: 'desc' }])
       .limitBy(1)
     const data = await this._client.query(query)
@@ -161,6 +163,7 @@ export default class EnedisMonthlyAnalysisDataService {
   ): Promise<MaxPowerEntity[]> {
     const query: QueryDefinition = Q(ENEDIS_MAXPOWER_DOCTYPE)
       .where({ year: year, month: month })
+      .indexFields(['year', 'month'])
       .sortBy([{ year: 'desc' }, { month: 'desc' }])
     const data = await this._client.query(query)
 
diff --git a/src/services/fluidsPrices.service.ts b/src/services/fluidsPrices.service.ts
index acbaf74193adc63ab60866e89986231ab7a5dd81..7ea8c8fb3e3e072a5d7e5ae21de0a2c5ca4f47c9 100644
--- a/src/services/fluidsPrices.service.ts
+++ b/src/services/fluidsPrices.service.ts
@@ -40,13 +40,13 @@ export default class FluidPricesService {
     date: DateTime
   ): Promise<FluidPrice> {
     const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE)
-      .indexFields(['startDate'])
       .where({
         startDate: {
           $lte: date.toISO({ suppressMilliseconds: true }).toString(),
         },
         fluidType,
       })
+      .indexFields(['startDate'])
       .sortBy([{ startDate: 'desc' }])
       .limitBy(1)
 
@@ -61,8 +61,8 @@ export default class FluidPricesService {
    */
   public async getAllLastPrices(): Promise<FluidPrice[]> {
     const query: QueryDefinition = Q(FLUIDSPRICES_DOCTYPE)
-      .indexFields(['fluidType'])
       .where({ endDate: { $eq: '' } })
+      .indexFields(['fluidType'])
       .sortBy([{ fluidType: 'asc' }])
       .limitBy(3)
 
diff --git a/src/services/profileTypeEntity.service.ts b/src/services/profileTypeEntity.service.ts
index b436858f0d00fa5bb5633b008c238baf84c0884d..bb68839a13cdca9313f5d79a101531ce07037132 100644
--- a/src/services/profileTypeEntity.service.ts
+++ b/src/services/profileTypeEntity.service.ts
@@ -30,6 +30,7 @@ export default class ProfileTypeEntityService {
       }: QueryResult<ProfileType[]> = await this._client.query(
         query
           .where({ updateDate: { $lte: date.toString() } })
+          .indexFields(['updateDate'])
           .sortBy([{ updateDate: 'desc' }])
           .limitBy(1)
       )
@@ -65,7 +66,8 @@ export default class ProfileTypeEntityService {
         data: [profileType],
       }: QueryResult<ProfileType[]> = await this._client.query(
         query
-          .where({ _id: { $gt: null } })
+          .where({})
+          .indexFields(['updateDate'])
           .sortBy([{ updateDate: 'desc' }])
           .limitBy(1)
       )
@@ -96,6 +98,7 @@ export default class ProfileTypeEntityService {
               $gte: timePeriod.startDate.toString(),
             },
           })
+          .indexFields(['updateDate'])
           .sortBy([{ updateDate: 'asc' }])
           .limitBy(100)
       )
diff --git a/src/services/queryRunner.service.ts b/src/services/queryRunner.service.ts
index 6fa8128692d7b81e1c8f31e468c83f3a575140e3..dffb788de165216d9d5890ef1e6a3f7c239e5c93 100644
--- a/src/services/queryRunner.service.ts
+++ b/src/services/queryRunner.service.ts
@@ -58,14 +58,14 @@ export default class QueryRunner {
       return Q(doctype)
         .where(this.getPredicate(maxTimePeriod, TimeStep.HALF_AN_HOUR))
         .indexFields(['load'])
-        .limitBy(1)
         .sortBy([{ load: 'desc' }])
+        .limitBy(1)
     }
     return Q(doctype)
       .where(this.getPredicate(maxTimePeriod, timeStep))
       .indexFields(['load'])
-      .limitBy(limit)
       .sortBy([{ load: 'desc' }])
+      .limitBy(limit)
   }
 
   private buildFirstDateQuery(
@@ -472,7 +472,7 @@ export default class QueryRunner {
   public async getEntries(fluidType: FluidType, timeStep: TimeStep) {
     const doctype = this.getRelevantDoctype(fluidType, timeStep)
     try {
-      const query = Q(doctype).where({}).limitBy(1)
+      const query = Q(doctype).limitBy(1)
       const result = await this._client.query(query)
       return result
     } catch (error) {
diff --git a/src/services/terms.service.ts b/src/services/terms.service.ts
index bb063f147f4557ab2e27a7d1b1a1cb083086472f..c9c3061a95372e312e8dffa58493fd61164a002c 100644
--- a/src/services/terms.service.ts
+++ b/src/services/terms.service.ts
@@ -21,6 +21,7 @@ export default class TermsService {
   public async getLastTerm(): Promise<Term> {
     const query: QueryDefinition = Q(TERMS_DOCTYPE)
       .where({})
+      .indexFields(['acceptedAt'])
       .sortBy([{ acceptedAt: 'desc' }])
       .limitBy(1)
     const {
@@ -36,6 +37,7 @@ export default class TermsService {
   public async isLastTermValidated(): Promise<boolean> {
     const query: QueryDefinition = Q(TERMS_DOCTYPE)
       .where({})
+      .indexFields(['acceptedAt'])
       .sortBy([{ acceptedAt: 'desc' }])
       .limitBy(1)
     const {
diff --git a/src/services/usageEvent.service.ts b/src/services/usageEvent.service.ts
index 9b18e59c4e342fd543fb8410e12019c12a244779..33fb71ea2b15ace740910d1d21852b30ad64f971 100644
--- a/src/services/usageEvent.service.ts
+++ b/src/services/usageEvent.service.ts
@@ -80,10 +80,13 @@ export default class UsageEventService {
       // Get last Connection attempt Event
       const query: QueryDefinition = Q(USAGEEVENT_DOCTYPE)
         .where({
-          type: UsageEventType.KONNECTOR_ATTEMPT_EVENT,
           target: konnectorSlug,
+        })
+        .partialIndex({
+          type: UsageEventType.KONNECTOR_ATTEMPT_EVENT,
           result: 'error',
         })
+        .indexFields(['eventDate', 'type'])
         .sortBy([{ eventDate: 'desc' }])
         .limitBy(1)
       const {