Просмотр исходного кода

小时计量查询性能优化

learshaw 1 неделя назад
Родитель
Сommit
9770787b6a

+ 3 - 1
ems/ems-cloud/ems-dev-adapter/src/main/resources/application-local.yml

@@ -19,6 +19,8 @@ spring:
         min-idle: 5
         maxActive: 20
         maxWait: 60000
+        connect-timeout: 10000
+        socket-timeout: 300000
         timeBetweenEvictionRunsMillis: 60000
         minEvictableIdleTimeMillis: 300000
         validationQuery: SELECT 1 FROM DUAL
@@ -98,7 +100,7 @@ analysis-task:
     forecastDays: 5
     cron: 0 30 8 * * ?
   elec-consume-forecast:
-    cron: 0 30 8 * * ?
+    cron: 0 40 8 * * ?
     forecastDays: 5
     area-codes: 321283124S3001,321283124S3002
   carbon-calculation:

+ 3 - 1
ems/ems-cloud/ems-dev-adapter/src/main/resources/application-prod-ct.yml

@@ -19,6 +19,8 @@ spring:
         min-idle: 5
         maxActive: 20
         maxWait: 60000
+        connect-timeout: 10000
+        socket-timeout: 300000
         timeBetweenEvictionRunsMillis: 60000
         minEvictableIdleTimeMillis: 300000
         validationQuery: SELECT 1 FROM DUAL
@@ -97,7 +99,7 @@ analysis-task:
     forecastDays: 5
     cron: 0 30 8 * * ?
   elec-consume-forecast:
-    cron: 0 30 8 * * ?
+    cron: 0 40 8 * * ?
     forecastDays: 5
     area-codes: 321283124S3001,321283124S3002
   carbon-calculation:

+ 0 - 1
ems/ems-core/src/main/resources/mapper/ems/ElecMeterHMapper.xml

@@ -56,7 +56,6 @@
         sum(COALESCE(h.elec_quantity,0)) as elec_quantity,
         sum(COALESCE(h.use_elec_cost,0)) as use_elec_cost
         FROM adm_elec_meter_h h
-            LEFT JOIN adm_area area on area.area_code = h.area_code
         <where>
             <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
                 and h.area_code = #{areaCode}

+ 6 - 2
ems/sql/ems_server.sql

@@ -1705,7 +1705,9 @@ create table adm_elec_meter_h (
   `meter_reading`      double          default null                 comment '抄表示数',
   `create_time`        datetime        default CURRENT_TIMESTAMP    comment '创建时间',
   primary key (`id`),
-  unique key ux_elec_meter_h(`device_code`, `record_time`)
+  unique key ux_elec_meter_h(`device_code`, `record_time`),
+  key idx_elec_meter_h_area_dev_date(`area_code`, `device_code`, `date`),
+  key idx_elec_meter_h_date(`date`)
 ) engine=innodb auto_increment=1 comment = '用电计量表-小时';
 
 
@@ -1727,7 +1729,9 @@ create table adm_water_meter_h (
   `meter_reading`      double          default null                 comment '抄表示数',
   `create_time`        datetime        default CURRENT_TIMESTAMP    comment '创建时间',
   primary key (`id`),
-  unique key ux_water_meter_h(`device_code`, `record_time`)
+  unique key ux_water_meter_h(`device_code`, `record_time`),
+  key idx_water_meter_h_area_dev_date(`area_code`, `device_code`, `date`),
+  key idx_water_meter_h_date(`date`)
 ) engine=innodb auto_increment=1 comment = '用水计量表-小时';