Closed Bug 1217117 Opened 9 years ago Closed 9 years ago

Getting performance data can still be rather slow

Categories

(Tree Management :: Perfherder, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: wlach, Assigned: wlach)

Details

Attachments

(1 file)

47 bytes, text/x-github-pull-request
emorley
: review+
Details | Review
It turns out that by instead of filtering on the signature hash, instead of the signature id, we have to consider millions of performance datum elements which we don't need to (because we can no longer use the signature id index to filter). Fixing this is easy and gives a substantial performance boost (going from 12 seconds on one query to less than 1): 

mysql> show profiles;
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Query_ID | Duration    | Query                                                                                                                                                                                                                                                                                                        |
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        1 | 11.28814050 | SELECT `performance_signature`.`signature_hash`, `performance_datum`.`job_id`, `performance_datum`.`result_set_id`, `performance_datum`.`push_timestamp`, `performance_datum`.`value` FROM `performance_datum` INNER JOIN `performance_signature` ON ( `performance_datum`.`signature_id` = `performance_sig |
|        2 |  0.00409075 | SELECT `performance_signature`.`signature_hash`, `performance_datum`.`job_id`, `performance_datum`.`result_set_id`, `performance_datum`.`push_timestamp`, `performance_datum`.`value` FROM `performance_datum` INNER JOIN `performance_signature` ON ( `performance_datum`.`signature_id` = `performance_sig |
+----------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set, 1 warning (0.10 sec)
Attached file PR
Attachment #8677021 - Flags: review?(emorley)
Comment on attachment 8677021 [details] [review]
PR

Looks good :-)
r=me presuming Travis goes green - it's still running after 17 mins :-/
Attachment #8677021 - Flags: review?(emorley) → review+
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: