Modified query in getAlarmedMetrics for performance

Change-Id: I3520ea7154a450c5cbb5d4aecf152e1521435907
This commit is contained in:
Roland Hochmuth 2015-07-29 22:40:33 -06:00
parent c400895872
commit fb9b6888c1
2 changed files with 7 additions and 4 deletions

View File

@ -22,7 +22,7 @@
<computedVersion>${project.version}-${timestamp}-${gitRevision}</computedVersion>
<computedName>${project.artifactId}-${computedVersion}</computedName>
<mon.common.version>1.1.0-SNAPSHOT</mon.common.version>
<storm.version>0.9.1-incubating</storm.version>
<storm.version>0.9.5</storm.version>
<skipITs>false</skipITs>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

View File

@ -131,12 +131,15 @@ public class AlarmDAOImpl implements AlarmDAO {
private void getAlarmedMetrics(Handle h, final Map<String, Alarm> alarmMap,
final Map<String, String> tenantIdMap, final String additionalWhereClause, String ... params) {
final String baseSql = "select a.id, md.name, mdg.dimensions from metric_definition as md "
final String baseSql = "select a.id, md.name, group_concat(mdim.name, '=', mdim.value order by mdim.name) as dimensions "
+ "from metric_definition as md "
+ "inner join metric_definition_dimensions as mdd on md.id = mdd.metric_definition_id "
+ "inner join alarm_metric as am on mdd.id = am.metric_definition_dimensions_id "
+ "inner join alarm as a on am.alarm_id = a.id "
+ "left join (select dimension_set_id, name, value, group_concat(name, '=', value) as dimensions "
+ " from metric_dimension group by dimension_set_id) as mdg on mdg.dimension_set_id = mdd.metric_dimension_set_id where %s";
+ "left join metric_dimension as mdim on mdim.dimension_set_id = mdd.metric_dimension_set_id "
+ "where %s "
+ "group by a.id, md.name, mdim.dimension_set_id "
+ "order by dimensions";
final String sql = String.format(baseSql, additionalWhereClause);
final Query<Map<String, Object>> query = h.createQuery(sql);
addQueryParameters(query, params);